Используйте Сравнение для сравнения - PullRequest
0 голосов
/ 03 июня 2018

Я знаю, как передать Сравнение в сортировку.

Я хочу сравнить два объекта со Сравнением.Как я могу это сделать?

Класс уже реализует IComparible .Это для пользовательского сравнения.

1 Ответ

0 голосов
/ 03 июня 2018

Сравнение - это делегат, который определяет, как должен возвращаться метод сравнения и какие параметры он должен получить.В этом примере он создает метод CompareDinosByLength для реализации делегата сравнения.

Если вы хотите сравнить свои объекты, вы должны реализовать свой метод следующим образом:

public static int CompareObjects(MyClass a, MyClass b) {
    if (a < b) { // Make your comparison logic here.
         return -1;
    } else if (a == b) {
         return 0;
    } else {
         return 1;
    }
}

Единственное ограничение для создания этого метода - возвращаемое значение должно следовать этому шаблону (-1, когда x y).

Добавить кметод sort, вам нужно только передать имя метода в качестве параметра методу Sort ():

list.Sort(CompareObjects);

И C # сделает все остальное за вас.

...