2011-06-24 29 views
19
var listair = empcon.OrderBy(x => x.CustomerConnection.OrderBy(y => y.Id)).ToList(); 

Khi tôi đang sử dụng tuyên bố này sau đó tôi nhận được ngoại lệ "Ít nhất một đối tượng phải thực hiện IComparable"Ít nhất một đối tượng phải thực hiện IComparable

Làm thế nào tôi có thể giải quyết vấn đề này?

+1

Vâng mã bạn đã đăng không đủ. Empcon là gì? CustomerConnection là gì? Bạn nên cung cấp thêm chi tiết. –

Trả lời

8

Triển khai IComparable cho các loại đối tượng chứa bởi CustomerConnection và empcon. Nếu họ không có IComparable thực hiện sau đó không có cách nào để thực hiện một đơn đặt hàng bằng.

26

Tôi có vấn đề này với truy vấn của tôi khi tôi đã viết nó sai:

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

này là do các phụ huynh và trẻ em đơn vị là cả hai đối tượng đơn vị tổ chức có liên quan đến các tổ chức OrgRelation này. Những gì tôi cần là đặt hàng không phải bởi vật thể, mà bởi tính chất của vật mà tôi thực sự muốn sắp xếp. Khi tôi thêm ".Name" nó hoạt động.

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

có bởi vì khi sử dụng Tên, đây là một chuỗi và IComparable đã được triển khai trên các chuỗi. – juFo

Các vấn đề liên quan