日期:2014-05-18  浏览次数:20806 次

多属性排序
有一个ArrayList 里面存放的实体 Item 

想通过 Item.Id 和 Item.Type 

两个属性来排序。C#中如何实现那。

谢谢。

------解决方案--------------------
item实现IComparable接口
------解决方案--------------------
可以按一楼的大哥说的那样做。
也可以把他转换成数组或者List<T>,然后再用排序,这样就有很多方法了。。
例如用Linq:

C# code
System.Collections.ArrayList arrList = new System.Collections.ArrayList();
//省略添加数据的步骤。
// ...

// 转换成数组
Item[] items = (Item[])(arrList.ToArray(typeof(Item)));
// 然后再使用Linq排序
var sorted = from item in items orderby item.Id ascending,item.Type descending select item;