在比較方法中需要實作對象比較規則,這個方法實作後,就可以把這方名字作為參數委托給List的Sort方法,Sort方法在排序時會執行這個方法對List中的對象進行比較
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace listSort
{
public class StrItem
{
public int id;
public int num;
}
class Program
{
static void Main(string[] args)
{
delegateSort();
Console.ReadLine();
}
static int sort(StrItem str1,StrItem str2)
{
int ret = 0;
if (str1.id > str2.id) //id從小到大
{
return 1;
}
else if (str1.id == str2.id)
{
if (str1.num < str2.num)//num從大到小
{
return 1;
}
}
return ret;
}
static void delegateSort()
{
List<StrItem> listItem = new List<StrItem>();
StrItem str1 = new StrItem();
str1.id = 1;
str1.num = 0;
listItem.Add(str1);
StrItem str2 = new StrItem();
str2.id = 2;
str2.num = 3;
listItem.Add(str2);
StrItem str3 = new StrItem();
str3.id = 2;
str3.num = 4;
listItem.Add(str3);
listItem.Sort(sort);
foreach (var item in listItem)
{
Console.WriteLine(item.num);
}
}
}
}
輸出結果: