首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问一个泛型 List<> 的排序?()

2012-01-12 
请教一个泛型 List.. 的排序?(在线等)请教一个泛型List ..的排序问题:classItem:ICompable{publicstri

请教一个泛型 List<..> 的排序?(在线等)
请教一个泛型   List <..>   的排序问题:

class   Item   :   ICompable
{
        public   string   name;
        public   int   age;
       
        public   int   CompareTo(object   vlaue)
        {
            ...
        }
}

class   ItemCollect  
{
        public   IList <Item>   items   =   new   List <Item> ();
       
        public   void   Sort()
      {   ...}
}


问:   怎么实现   ItemCollect.Sort()   让   items   按照   Item实现的比较方法进行排序?

ItemCollect需要实现什么接口吗?

谢谢!



[解决办法]
http://dev.csdn.net/article/20/20421.shtm

http://www.xdfbc.com/doc/cpp/1636261_sort_vector.htm
[解决办法]
List.Sort (泛型 IComparer)

IComparer 是个接收两个参数的Int函数
==返回0
小于返回-1
大于返回1
至于怎么比较就自己按要求实现
[解决办法]
为何不直接用SortedList?
[解决办法]
items.Sort(delegate(Item item1, Item item2) { return item1.Compare(item2); });
[解决办法]
对 实现IComparer接口
[解决办法]
IList <Item> 你的Item实现了ICompable就可以按照你的方法去sort了呀,如果没有记错的话。
[解决办法]
items.Sort(delegate(Item item1, Item item2) { return item1.Compare(item2); });
就可以。
如果要用IComparer,
class ItemComparer : IComparer <Item>
{
public int Compare(Item x, Item y)
{
return x.CompareTo(y);
}
}

然后要排序的时候:

public IList <Item> items = new List <Item> ();
items.Sort(new ItemComparer());

热点排行