Fórum Nome de arquivo vindos de um txt e arquivos. Há diferença numa comparação? #547388
01/03/2016
0
ListaNomeArquivo
ListaNomeTxt
Preciso pegar o nome da lista ListaNomeArquivo e ver se existe dentro de ListaNomeTxt. Tanto Contains quanto Equals, sempre retorna diferente e tenho os mesmos nomes. Só para exemplificar. Tenho em ambas as listas esse nome:
web\\ace\\asp\\ace0003a.asp
Acontece que a lambda que fiz, diz que são diferentes:
var busca = listaCommiter.Where(l => !l.Contains(listaFarm.ToString()));
Como eu faço para somente armazenar o que realmente não existe?
O código completo dessa rotina:
private List<string> ComparaArquivo()
{
List<string> listaCommiter = new List<string>();
List<string> listaFarm = new List<string>();
List<string> listaDiferenca = new List<string>();
try
{
listaCommiter = _listaCommiter();
listaFarm = _listaFarm();
var busca = listaCommiter.Where(l => !l.Contains(listaFarm.ToString()));
return listaDiferenca;
}
catch(Exception ex)
{
string r = ex.Message;
return null;
}
}A lista em return
listaDiferenca; está retornando nada, porque estou ainda desenvolvendo. Ela vai retorna busca.
Pjava
Curtir tópico
+ 0Post mais votado
01/03/2016
Eu usaria o Except!
Fiz um exemplo simples abaixo com o uso do Except e do foreach, nos dois casos funciona.
List<string> diferenca = new List<string>();
List<string> lista = new List<string>();
List<string> listaTXT = new List<string>();
lista.Add("ace0003a.asp");
lista.Add("ace0003b.asp");
lista.Add("ace0003c.asp");
listaTXT.Add("ace0003a.asp");
listaTXT.Add("ace0003c.asp");
foreach (string item in lista)
{
if (!listaTXT.Contains(item))
diferenca.Add(item);
}
List<string> diferenca1 = lista.Except(listaTXT).ToList();
Quando tiver um tempo dou um olhada em como fazer com lambda. Mas talvez os exemplos acima resolvam seus problemas.
Jothaz
Gostei + 1
Mais Posts
02/03/2016
Pjava
Cannot convert lambda expression to delegate type 'System.Func<string,bool>' because some of the return types in the block are not implicitly convertible to the delegate return type
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<char>' to 'bool'
Essa foi a forma que eu fiz:
var busca = listaCommiter.Where(l => l.Except(listaFarm.ToString()));
Gostei + 0
02/03/2016
Pjava
Gostei + 0
02/03/2016
Jothaz
Neste caso o Foreach funciona e o Except é mais simples e eficaz ainda.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)