我正在尝试对通用列表进行排序,并收到InvalidOperationException
错误
有人有关于如何纠正它的建议吗?
List<XYZ<String, String>>
列表通过函数作为参数传递。
func( List<XYZ<String, String>> PassedList) {
PassedList.Sort();
}
任何建议都会非常有用。
答案 0 :(得分:2)
您的XYZ应为IComparable
答案 1 :(得分:1)
您的XYZ
必须实施IComparable
或(更好)IComparable<XYZ<T, U>>
。
如果那是不可能的,你必须创建一个实现IComparer
的类或(再次,更好)IComparer<XYZ<String, String>>
的类,并使用Sort()
的重载来获取这样的实例对象,或者使用带有与Comparison<XYZ<String, String>>
匹配的委托或lamda表达式的表单(取两个XZY<String, String>
参数,并返回int
)。
如果Sort()
方法无法确定哪个XYZ
之前,那么它就无法对它们进行排序。
答案 2 :(得分:0)
我使用linq语句解决了这个问题。
而不是使用PassedList.Sort()
,我使用了以下语句:
PassedList = PassedList.OrderBy( x => x.Column1).ToList();