委托 lambda表达式 类继承接口
class Program
{
public static void Main()
{
List<Test > tests = new List<Test>();
tests.Add(new Test (1));
tests.Add(new Test (4));
tests.Add(new Test (2));
tests.Add(new Test (3));
tests.Add(new Test (5));
//用委托
tests.Sort( delegate (Test a, Test b)
{
if (a.Id > b.Id)
{
return -1;
}
else if (a.Id < b.Id)
{ return 1; }
return 0;
});
for (int i = 0; i < tests.Count; i++)
{
Console.WriteLine(tests[i].Id);
}
Console.WriteLine("-----------------------------------------");
// 用lambda表达式
tests.Clear();
tests.Add(new Test(1));
tests.Add(new Test(4));
tests.Add(new Test(2));
tests.Add(new Test(3));
tests.Add(new Test(5));
tests .Sort( (a, b)=>
{
if(a.Id>b.Id)
return 1;
return -1;
});
//把if else 写成三目运算符
tests.Sort((a, b) => { return (a.Id > b.Id) ? 1 : -1; });
for (int i = 0; i < tests.Count; i++)
{
Console.WriteLine(tests[i].Id);
}
Console.WriteLine("-----------------------------------------");
//用类继承接口 实现好接口里的逻辑后就可以直接用啦
tests.Clear();
tests.Add(new Test(1));
tests.Add(new Test(4));
tests.Add(new Test(2));
tests.Add(new Test(3));
tests.Add(new Test(5));
tests.Sort();