List.Sort() 抛出 mscorlib 中发生了类型为 'System.InvalidOperation
本文关键字:InvalidOperation System 类型 发生了 Sort 抛出 mscorlib List | 更新日期: 2023-09-27 18:32:23
我有一个人员类型列表,它有一些项目,我想默认对此列表进行排序(没有任何参数)。所以我用了人。sort() 方法。当我执行代码时,我收到异常写入
类型为"系统.无效操作异常"的未处理异常 发生在姆科利布.dll
在 Sort() 方法。任何专家请解释背后的原因。
List<Person> person = new List<Person>();
person.Add(new Person() { Name = "crank arm", Age = 1234 });
person.Add(new Person() { Name = "chain ring", Age = 1334 });
person.Add(new Person() { Name = "regular seat", Age = 1434 });
person.Add(new Person() { Name = "banana seat", Age = 1444 });
person.Sort();
你需要
让你的Person
类实现IComparable
排序方法在以下情况下引发该异常
默认比较器 Comparer。默认找不到类型 T 的 IComparable 泛型接口或 IComparable 接口的实现。
来自 MSDN
Person
是你定义的类,Sort 方法不知道 Person 对象之间如何比较,需要实现比较方法,可以参考:http://msdn.microsoft.com/en-us/library/3da4abas(v=vs.110).aspx