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