读书人

请问一个泛型 Listlt;gt; 的排序?()

发布时间: 2012-01-12 22:11:58 作者: rapoo

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

读书人网 >C#

热点推荐