Deutsch
Germany.ruФорумы → Архив Досок → Программирование

Linq - At least one object must implement IComparable.

219  
Murr патриот18.12.17 18:40
Murr
18.12.17 18:40  Linq - At least one object must implement IComparable.

Linq...

At least one object must implement IComparable.


Элементы списка - однотипные, IComparable имплементирован для элементов списка (ООП нарушена).

Выполняется сортировка элементов по двум полям:

var lst = list.OrderBy(x => x.T1).ThenBy(x => x.T2);

Не догоняю где именно нужна компарация...

Программист коренной житель18.12.17 19:15
18.12.17 19:15  Re: Linq - At least one object must implement IComparable.
В ответ Murr 18.12.17 18:40

Я бы предположил, что сравниваемые поля тут T1 и T2, соответственно они и должны имплементировать IComparable.

AlexNek патриот18.12.17 22:19
AlexNek
18.12.17 22:19  Re: Linq - At least one object must implement IComparable.
В ответ Murr 18.12.17 18:40

у меня код тоже требует IComparable.

Не скажешь почему?

moose старожил18.12.17 22:58
moose
18.12.17 22:58  Re: Linq - At least one object must implement IComparable.
В ответ Murr 18.12.17 18:40

а что такое "list"? это - integer, DataTime или что-то еще? народ не видит и неудомевает. вставьте где-нибудь list.GetType().ToString() и покажите, что там будет за строчка.

If idiots have a majority, it does not mean that they are right
Программист коренной житель19.12.17 08:37
19.12.17 08:37  Re: Linq - At least one object must implement IComparable.
В ответ moose 18.12.17 22:58

В листе содержится что-то типа такого:

class SomeType
{
    public <some type> T1 { get; }
    public <some (other) type> T2 { get; }
}

И скорее всего <some type> и/или <some (other) type> не имплементируют IComparable.

Murr патриот19.12.17 09:49
Murr
19.12.17 09:49  Re: Linq - At least one object must implement IComparable.

они и должны имплементировать IComparable.

-----

Оно самое... вчера под вечер уже ступил...

Murr патриот19.12.17 09:51
Murr
19.12.17 09:51  Re: Linq - At least one object must implement IComparable.
В ответ AlexNek 18.12.17 22:19

Потому как где-то не имплементировано IComparable.

Мой вопрос был - где? Бо, для элементов IList все было прописано.

Murr патриот19.12.17 09:54
Murr
19.12.17 09:54  Re: Linq - At least one object must implement IComparable.
В ответ moose 18.12.17 22:58

list...

хммм... ну наверное имплементация IList.

Кстати, если встретишь dictionary, то это скорее всего будет имплементация IDictionary...


Да и без разницы что там - был бы IEnumerable имплементирован...

AlexNek патриот19.12.17 21:41
AlexNek
19.12.17 21:41  Re: Linq - At least one object must implement IComparable.
В ответ Murr 19.12.17 09:51

...

ааа так ты на арабский, перешел сначал вопрос, а после код.

А то код искал искал и не нашел.

Murr патриот19.12.17 22:00
Murr
19.12.17 22:00  Re: Linq - At least one object must implement IComparable.
В ответ AlexNek 19.12.17 21:41

Эээ... не тупи - там было достаточно инфы для анализа и нахождения решения проблемы...


AlexNek патриот19.12.17 22:46
AlexNek
19.12.17 22:46  Re: Linq - At least one object must implement IComparable.
В ответ Murr 19.12.17 22:00

Читаю следующее:

Linq...
At least one object must implement IComparable.

остальное воспринимается как некое пояснение. В жисть бы не додул, что приведенный код именно то Linq о котором речь. Ожидал запрос к базе.

Перейти на