Могу ли я указать свой явный тип компаратора встроенного?C#

Место общения программистов C#
Ответить
Anonymous
 Могу ли я указать свой явный тип компаратора встроенного?

Сообщение Anonymous »

so .net 3.0/3.5 предоставляет нам множество новых способов запроса, сортировки и манипулирования данными благодаря всем аккуратным функциям, поставляемым с LINQ. Иногда мне нужно сравнить определенные пользовательские типы, которые не имеют встроенного оператора сравнения. Во многих случаях сравнение действительно простое - что -то вроде foo1.key? = Foo2.key. Вместо того, чтобы создавать новый iEqualityComparer для типа, могу ли я просто указать встроенное сравнение, используя анонимные делегаты/лямбда? Что -то вроде: < /p>

var f1 = ...,
f2 = ...;
var f3 = f1.Except(
f2, new IEqualityComparer(
(Foo a, Foo b) => a.key.CompareTo(b.key)
) );
< /code>

Я почти уверен, что выше, на самом деле не работает. Я просто не хочу делать что -то как «тяжелое» как целый класс, чтобы сказать программе, как сравнить яблоки с яблоками.

Подробнее здесь: https://stackoverflow.com/questions/188 ... tor-inline
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»