По крайней мере один объект должен реализовывать IComparable - PullRequest
19 голосов
/ 24 июня 2011
var listair = empcon.OrderBy(x => x.CustomerConnection.OrderBy(y => y.Id)).ToList();

Когда я использую этот оператор, я получаю исключение «По крайней мере, один объект должен реализовывать IComparable»

Как мне решить эту проблему?

Ответы [ 2 ]

26 голосов
/ 11 ноября 2011

У меня возникла проблема с запросом, когда я написал неправильно:

IEnumerable<OrgRelation> relations = from r in tree.OrgRelations
                                                 orderby r.ParentUnit, r.ChildUnit
                                                 select r;

Это произошло потому, что родительский и дочерний блоки являются объектами OrgUnit и связаны с этим объектом OrgRelation. Мне нужно было упорядочить не объект, а свойство объекта, по которому я действительно хотел отсортировать. Когда я добавил «.Name», это сработало.

IEnumerable<OrgRelation> relations = from r in tree.OrgRelations
                                                 orderby r.ParentUnit.Name, r.ChildUnit.Name
                                                 select r;
8 голосов
/ 24 июня 2011

Реализация IComparable для типов объектов, содержащихся в CustomerConnection и empcon.Если они не реализовали IComparable, то нет способа выполнить заказ.

...