Рассмотрим следующий простой пример:
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 на самом деле не используется для сравнения без учета регистра.
Другими словами, uniqueList содержит то же количество элементов, что и список . Вместо этого я бы ожидал, например, что «тройка» и «тройка» будут считаться равными.
Я что-то упустил или это проблема с оператором Distinct?