0

I am trying to sort a generic list, and am getting a InvalidOperationException error

Does anyone has suggestions on how to rectify it?

List<XYZ<String, String>> list is being passed on as a parameter through a function.

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

   PassedList.Sort();
}

Any suggestion would be really helpful.

4

3 回答 3

2

你的 XYZ 应该是IComparable

于 2013-02-14T18:00:06.090 回答
1

XYZ必须实施IComparableor (更好) IComparable<XYZ<T, U>>

如果这不可能,您必须创建一个实现IComparer或(再次,更好)的类IComparer<XYZ<String, String>>并使用该类的重载,Sort()该类采用此类对象的实例,或者使用采用匹配的委托或 lamda 表达式的形式Comparison<XYZ<String, String>>(采用两个XZY<String, String>参数,并返回int)。

如果该Sort()方法无法确定哪个XYZ在哪个之前,那么它就无法对它们进行排序。

于 2013-02-14T18:04:32.670 回答
0

我使用 linq 语句解决了这个问题。

而不是 using PassedList.Sort(),我使用了以下语句:

PassedList = PassedList.OrderBy( x => x.Column1).ToList();
于 2013-02-14T19:04:46.443 回答