C # List <T>Сортировка с аргументом IComparer дает ошибку компиляции - PullRequest
1 голос
/ 03 марта 2011

Может кто-нибудь объяснить мне, как это должно работать?Я следовал примеру MSDN, найденному на http://msdn.microsoft.com/en-us/library/234b841s.aspx.

Я создал свой собственный объект CustomObject и создал для него Comparer.

Вот класс CustomObjectComparer:

public class CustomObjectComparer : System.Collections.Generic.IComparer<CustomObject>
{
    public int Compare(CustomObject co1, CustomObject co2)
    {
         //Impementation Omitted
    }

}

Затем, когда у меня есть List<CustomObject> и я пытаюсь сделать следующее, я получаю ошибки компиляции.

List<CustomObject> list = new List<CustomObject>();
CustomObjectComparer comparer = new CustomObjectComparer();
list.Sort(comparer);

Ошибки: Argument 1: cannot convert from 'CustomObjectComparer' to 'System.Collections.Generic.IComparer<CustomObject>'

Разве CustomObjectComparer a System.Collections.Generic.IComparer?

1 Ответ

4 голосов
/ 03 марта 2011

Похоже, ваш список содержит CustomObjectComparer с, а не CustomObject с.

Вы можете либо передать компаратор, который может сравнивать CustomObjectComparer с, либо (что более вероятно) изменить список на List<CustomObject>.

РЕДАКТИРОВАТЬ : Это произойдет, если у вас есть два типа с именем CustomObject, или если у вас также есть другая ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...