Враховуючи наступний простий приклад:
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();
Здається, CaseInsensitiveComparer насправді не використовується для порівняння без урахування регістру.
Іншими словами, distinctList містить таку ж кількість елементів, як і список . Натомість я би очікував, наприклад, "три" та "три" вважатимуться рівними.
Мені щось не вистачає, чи це проблема з оператором Distinct?