IEnumberable имеет метод расширения Содержит <T>, который принимает два параметра. Первым параметром является значение для проверки, а второе - реализация IEqualityComparer. Глядя на IEqualityComparer.Equals, требуется два параметра с именем x и y для сравнения первого и второго объектов.IEqualityComparer.Equals при использовании с IEnumerable.Contains является x или y значением в списке?
Мой вопрос X или Y значение из IEnumerable?
Пример
List<string> test = new List<String() { "a", "b", "c" };
test.Contains("d", myComparer);
Когда вызовы метода Equals для первого значения это будет Равно ("а", "г") или равно ("d", "а") ?
Он по-прежнему всегда меня забавляет, что IComparer * не * должен быть транзитивным ... и в самом деле, не для строки –