Compte tenu de l'exemple simple suivant:
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();
Il semble que CaseInsensitiveComparer ne soit pas réellement utilisé pour effectuer une comparaison insensible à la casse.
En d'autres termes, distinctList contient le même nombre d'éléments que list . Je m'attendrais plutôt à ce que, par exemple, «trois» et «trois» soient considérés comme égaux.
Est-ce que je manque quelque chose ou est-ce un problème avec l'opérateur Distinct?
OutPut sera
la source
Voici une version beaucoup plus simple.
la source