使用List泛型,怎么排序
2008-07-04 10:18
351 查看
using System;
using System.Collections.Generic;
using System.Text;
namespace Ch12Ex02
原来用的animalCollection.Sort()这个是用的默认的比较器...
对于list<T>来说:
此方法使用类型 T 的默认比较器 Comparer.Default 确定列表元素的顺序。Comparer.Default
属性检查类型 T 是否实现了 IComparable
泛型接口,如果实现了该接口,则使用该实现。否则,Comparer.Default 将检查类型 T 是否实现了
IComparable 接口。如果类型 T 未实现任一接口,则 Comparer.Default 将引发
InvalidOperationException。
也就是说Animal没有实现IComparable 接口,它也不知道怎么帮你排啊?按照什么排啊?
对于范型来说必须指定比较器
可以这样做:
1. 让Animal实现IComparable接口,实现CompareTo方法(假设以name来排序):
class Animal : IComparable<Animal>
{
...
public int CompareTo(Animal other)
{
return name.CompareTo(other.name);
}
}
这样直接调用sort就可以排序 list.Sort();
2.自己写ICompare比较器:
class AnimalCompare : IComparer<Animal>
{
public int Compare(Animal a, Animal b)
{
return a.name.CompareTo(b.name);
}
}
这样使用 list.Sort(new AnimalCompare());
也可以使用 SortedList<key, value>
在Add元素的时候指定一个key,这样SortedList会自动以key的Compare方法进行排序
比如
SortedList<string, Animal> sl = new SortedList<string, Animal>();
sl.Add("animal1", new Animal());
sl.Add("animal2", new Anmial());
var alimama_pid="mm_10438718_507180_767205";
var alimama_titlecolor="0000FF";
var alimama_descolor ="000000";
var alimama_bgcolor="FFFFFF";
var alimama_bordercolor="E6E6E6";
var alimama_linkcolor="008000";
var alimama_bottomcolor="FFFFFF";
var alimama_anglesize="0";
var alimama_bgpic="0";
var alimama_icon="0";
var alimama_sizecode="14";
var alimama_width=728;
var alimama_height=90;
var alimama_type=2;
相关文章推荐
- 使用List<>泛型,怎么排序?
- 使用List<>泛型,怎么排序?
- Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序
- DataGridView使用非泛型或者未实现IBindingList接口泛型集合的列排序问题
- [转]C# 中使用委托对List<>进行排序和筛选
- 使用Collections.sort()对List/ArrayList进行排序
- 使用Collections对list的内容进行排序
- list泛型自定义排序示例
- C# - 使用 List<> 泛型给GridView控件数据
- javawebday11(junit debug调试 泛型 遍历 list set map 使用通配符T)
- List中使用继承关系泛型 实战
- Delphi 的泛型和匿名函数:对 TObjectList<> 做排序
- 深入理解 c# 第一章 使用IComparer<Product>委托 对 List <Product> 进行排序
- 【泛型】使用List&lt;T&gt;篇
- 排序与list.sort()使用
- 使用JavaCollections类的sort对List集合排序的两种方法
- 使用Collections.sort(List<T>,Comparator<T>)给List<String>排序(一)
- 泛型List使用示例
- List排序的使用
- List排序的使用