手机
当前位置:查字典教程网 >编程开发 >C#教程 >探讨:如何使用委托,匿名方法对集合进行万能排序
探讨:如何使用委托,匿名方法对集合进行万能排序
摘要:下面Demo中我使用了2种排序方式1.让Employee继承IComparable接口,实现CompareTo方法排序2.定义一个方法使用C...

下面Demo中我使用了2种排序方式

1.让Employee继承IComparable 接口,实现CompareTo方法排序

2.定义一个方法使用Comparison<T>委托,排序的操作交给匿名方法

看完下面的代码,你知道使用Comparison<T>委托的好处吗?

复制代码 代码如下:

class Employee:IComparable

{

public string Name { get; set; }

public int Age { get; set; }

public static List<Employee> GetEmployees()

{

return new List<Employee>()

{

new Employee(){Name ="GuoHu",Age =25},

new Employee(){Name ="LeiHu",Age =23},

new Employee(){Name ="JunWenLi",Age =24},

new Employee(){Name ="JinHaoLiu",Age =25},

new Employee(){Name ="ChengFang",Age =24}

};

}

public int CompareTo(object obj)

{

Employee employee = obj as Employee;

if (employee != null)

{

return Name.CompareTo(employee.Name);

}

else

{

throw new ArgumentException("obj is not Employee");

}

}

}

class Test

{

static void SortAndShowFiles(string title, Comparison<Employee> employeeInfo)

{

List<Employee> employee = Employee.GetEmployees();

employee.Sort(employeeInfo);

Console.WriteLine(title);

foreach(Employee e in employee)

{

Console.WriteLine("Name:{0},Age:{1}", e.Name, e.Age);

}

}

static void Main()

{

List<Employee> employeeInfo = Employee.GetEmployees();

//Using IComparable sort

employeeInfo.Sort();

employeeInfo.ForEach(e => Console.WriteLine("Name:{0},Age{1}/t", e.Name, e.Age));

SortAndShowFiles("Sort by name", delegate(Employee e1, Employee e2) { return e1.Name.CompareTo(e2.Name); });

SortAndShowFiles("Sort by age", delegate(Employee e1, Employee e2) { return e1.Age.CompareTo(e2.Age); });

}

}

【探讨:如何使用委托,匿名方法对集合进行万能排序】相关文章:

C# 如何判断两个文件内容是否相同的方法

C#排序算法之快速排序

C#异步调用的好处和方法分享

C#用Lambda和委托实现模板方法

C# 中如何利用lambda实现委托事件的挂接

c#(Socket)同步套接字代码示例

使用异步方式调用同步方法(实例详解)

C# TextBox 扩展方法数据验证详细说明

解析如何使用反射调用类型成员 方法,字段,属性

深入c# GDI+简单绘图的具体操作步骤(三)

精品推荐
分类导航