排序列表的问题<xyz <string,string =“”>&gt;,错误:InvalidOperationException </xyz <string,>

时间:2013-02-14 17:57:39

标签: c# sorting compiler-errors generic-list invalidoperationexception

我正在尝试对通用列表进行排序,并收到InvalidOperationException错误

有人有关于如何纠正它的建议吗?

List<XYZ<String, String>>列表通过函数作为参数传递。

func( List<XYZ<String, String>> PassedList) {

   PassedList.Sort();
}

任何建议都会非常有用。

3 个答案:

答案 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();