如何在 C# 中使用 Comparison 委託對複雜型別列表進行排序?
List 類的 Sort() 方法的過載需要將 Comparison 委託作為引數傳遞。
public void Sort(Comparison<T> comparison)
CompareTo 返回一個整數,指示該例項的值是否小於、等於或大於指定物件的值或其他 Int16 例項。
在 C# 中,Int16.CompareTo() 方法用於將該例項與指定物件或另一個 Int16 例項進行比較。
示例
class Program{
public static void Main(){
Employee Employee1 = new Employee(){
ID = 101,
Name = "Mark",
Salary = 4000
};
Employee Employee2 = new Employee(){
ID = 103,
Name = "John",
Salary = 7000
};
Employee Employee3 = new Employee(){
ID = 102,
Name = "Ken",
Salary = 5500
};
List<Employee> listEmployees = new List<Employee>();
listEmployees.Add(Employee1);
listEmployees.Add(Employee2);
listEmployees.Add(Employee3);
Console.WriteLine("Employees before sorting");
foreach (Employee Employee in listEmployees){
Console.WriteLine(Employee.ID);
}
listEmployees.Sort((x, y) => x.ID.CompareTo(y.ID));
Console.WriteLine("Employees after sorting by ID");
foreach (Employee Employee in listEmployees){
Console.WriteLine(Employee.ID);
}
listEmployees.Reverse();
Console.WriteLine("Employees in descending order of ID");
foreach (Employee Employee in listEmployees){
Console.WriteLine(Employee.ID);
}
}
// Approach 1 - Step 1
// Method that contains the logic to compare Employees
private static int CompareEmployees(Employee c1, Employee c2){
return c1.ID.CompareTo(c2.ID);
}
}
public class Employee{
public int ID { get; set; }
public string Name { get; set; }
public int Salary { get; set; }
}輸出
Employees before sorting 101 103 102 Employees after sorting by ID 101 102 103 Employees in descending order of ID 103 102 101
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP