I'm working on a WEB API and need to remove some of the values contained in one list and that are contained in another. To be better illustrated would be the equivalent of removing the data from a list where the user in question has already registered. Below is the Get method of the web api that is doing the request and the way I am doing to try to do this extraction however the same is only returning me the values that the user already registered first followed by all values from the table after, could you give me a light please.
// GET: api/Jogos?ID_Jogador
public IEnumerable<Jogos> GetJogos(long ID_Jogador)
{
//Desabilita a criação de proxy que gera erros na chamada
//db.Configuration.ProxyCreationEnabled = false;
var query =
(
from jO in db.Jogos
from jJ in db.JogosJogador
where jJ.ID_Jogador == ID_Jogador && jJ.ID_Jogo == jO.ID_Jogo
select new
{
jO.ID_Jogo,
jO.Nome_Jogo,
jO.Nome_Icone_Jogo,
jO.Plataforma,
jO.Genero
}
);
List<Jogos> jogosJogadorTem = new List<Jogos>();
foreach (var item in query)
{
jogosJogadorTem.Add(new Jogos
{
ID_Jogo = item.ID_Jogo,
Nome_Jogo = item.Nome_Jogo,
Nome_Icone_Jogo = item.Nome_Icone_Jogo,
Genero = item.Genero,
Plataforma = item.Plataforma
});
}
List<Jogos> todosJogos = db.Jogos.ToList();
var diferenca1 = jogosJogadorTem.Except(todosJogos);
var diferenca2 = todosJogos.Except(jogosJogadorTem);
var juncao = diferenca2.Union(diferenca1).ToList();
return juncao.ToList();
}