Dado o seguinte exemplo simples:
List<string> list = new List<string>() { "One", "Two", "Three", "three", "Four", "Five" };
CaseInsensitiveComparer ignoreCaseComparer = new CaseInsensitiveComparer();
var distinctList = list.Distinct(ignoreCaseComparer as IEqualityComparer<string>).ToList();
Parece que CaseInsensitiveComparer não está realmente sendo usado para fazer uma comparação que não diferencia maiúsculas de minúsculas.
Em outras palavras, DifferentList contém o mesmo número de itens que a lista . Em vez disso, eu esperaria, por exemplo, "Três" e "três" serem considerados iguais.
Estou faltando alguma coisa ou isso é um problema com a operadora Distinct?
OutPut será
fonte
Aqui está uma versão muito mais simples.
fonte