请教一个泛型 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());