Home > Backend Development > C#.Net Tutorial > How to sort a list of complex types using comparison delegates in C#?

How to sort a list of complex types using comparison delegates in C#?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2023-08-28 08:05:02
forward
1077 people have browsed it

如何使用 C# 中的比较委托对复杂类型列表进行排序?

The overload of the Sort() method in the List class requires the Comparison delegate Passed as parameter.

public void Sort(Comparison Comparison)

CompareTo Returns an integer indicating whether the value of this instance is less than, equal to, or greater than the specified object or otherInt16 The value of the instance.

The Int16.CompareTo() method in C# is used to compare this instance with the specified instance Object or another Int16 instance

Example

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; }
}
Copy after login

Output

Employees before sorting
101
103
102
Employees after sorting by ID
101
102
103
Employees in descending order of ID
103
102
101
Copy after login

The above is the detailed content of How to sort a list of complex types using comparison delegates in C#?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template