การโอเวอร์โหลดของเมธอด Sort() ในคลาส List คาดว่าผู้รับมอบสิทธิ์การเปรียบเทียบจะถูกส่งผ่านเป็นอาร์กิวเมนต์
โมฆะสาธารณะ เรียงลำดับ(การเปรียบเทียบ
CompareTo ส่งคืนค่าจำนวนเต็มที่ระบุว่าค่าของอินสแตนซ์นี้น้อยกว่า เท่ากับ หรือมากกว่าค่าของวัตถุที่ระบุหรืออินสแตนซ์ Int16 อื่น
เมธอด Int16.CompareTo() ใน C# ใช้เพื่อเปรียบเทียบอินสแตนซ์นี้กับอ็อบเจ็กต์ที่ระบุหรืออินสแตนซ์ 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