c# 接口IComparer<T>
2014-08-20 23:14
337 查看
Sort()方法是集合中默认的排序方法,它的排序方式可以通过IComparable接口实现。
如果要指定排序方式可以实现IComparer接口的Compare(T x,T y)方法Sort(Icomparer)
降序,升序年龄比较器
class AgeDesc : IComparer<Student> {
#region IComparer<Student> 成员
public int Compare(Student x, Student y)
{
return y.Age.CompareTo(x.Age);
}
#endregion
}
class AgeAsc : IComparer<Student> {
#region IComparer<Student> 成员
public int Compare(Student x, Student y)
{
return x.Age.CompareTo(y.Age);
}
#endregion
}
private void btnAgeDesc_Click(object sender, EventArgs e)
{
student.Sort(new AgeDesc());
Print(student);
}
private void Print(List<Student> stu) {
this.listView1.Items.Clear();
foreach (Student st in stu) {
ListViewItem lvi = new ListViewItem(st.Name);
lvi.SubItems.AddRange(new string[] {st.Age.ToString()});
listView1.Items.Add(lvi);
}
}
private void btnAgeAsc_Click(object sender, EventArgs e)
{
student.Sort(new AgeAsc());
Print(student);
}
如果要指定排序方式可以实现IComparer接口的Compare(T x,T y)方法Sort(Icomparer)
降序,升序年龄比较器
class AgeDesc : IComparer<Student> {
#region IComparer<Student> 成员
public int Compare(Student x, Student y)
{
return y.Age.CompareTo(x.Age);
}
#endregion
}
class AgeAsc : IComparer<Student> {
#region IComparer<Student> 成员
public int Compare(Student x, Student y)
{
return x.Age.CompareTo(y.Age);
}
#endregion
}
private void btnAgeDesc_Click(object sender, EventArgs e)
{
student.Sort(new AgeDesc());
Print(student);
}
private void Print(List<Student> stu) {
this.listView1.Items.Clear();
foreach (Student st in stu) {
ListViewItem lvi = new ListViewItem(st.Name);
lvi.SubItems.AddRange(new string[] {st.Age.ToString()});
listView1.Items.Add(lvi);
}
}
private void btnAgeAsc_Click(object sender, EventArgs e)
{
student.Sort(new AgeAsc());
Print(student);
}
相关文章推荐
- C#中如何使用IComparable<T>与IComparer<T>接口(转载)
- C#中IComparable<T>和IComparer<T>接口的使用
- C#学习笔记 IEquatable<T> 接口 IEqualityComparer<T> 接口
- C#编程:泛型中接口IEnumerable<T>中GetEnmerator方法的讨论
- c# 和 java <转载>http://www.cnblogs.com/zhucai/archive/2011/02/16/csharp-compare-java.html
- C#学习笔记 IComparable接口 IComparable<T>接口 IComparer接口
- 《Effective C#》读书笔记——条目22:通过定义并实现接口替代继承<使用C#表达设计>
- C#泛型-泛型接口IComparer<T>——比较器
- IEqualityComparer<T>接口
- C# 常用接口学习 IEnumerable<T>
- C# 常用接口学习 ICollection<T>
- 《Effective C#》读书笔记——条目23:理解接口方法和虚方法的区别<使用C#表达设计>
- C# List<> 实现 IComparer 接口 排序
- 对象的比较与排序(三):实现IComparable<T>和IComparer<T>泛型接口
- 对象的比较与排序(三):实现IComparable<T>和IComparer<T>泛型接口
- 用泛型的IEqualityComparer<T>接口去重复项
- 用泛型的IEqualityComparer<T>接口去重复项
- 用委托来实现IEqualityComparer<T>接口
- Effective C# 学习笔记(三十一)利用IComparable<T>和IComparer<T>接口来实现排序关系
- C#学习单向链表和接口 IList<T>