Dato il seguente semplice esempio:
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();
Sembra che CaseInsensitiveComparer non venga effettivamente utilizzato per eseguire un confronto senza distinzione tra maiuscole e minuscole.
In altre parole separateList contiene lo stesso numero di elementi di list . Invece mi aspetterei, ad esempio, che "Tre" e "tre" siano considerati uguali.
Mi manca qualcosa o si tratta di un problema con l'operatore Distinct?