ホームページ > バックエンド開発 > C#.Net チュートリアル > C# で比較デリゲートを使用して複合型のリストを並べ替えるにはどうすればよいですか?

C# で比較デリゲートを使用して複合型のリストを並べ替えるにはどうすればよいですか?

WBOY
リリース: 2023-08-28 08:05:02
転載
1010 人が閲覧しました

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

List クラスの Sort() メソッドのオーバーロードには比較デリゲートが必要です パラメータとして渡されます。

public void Sort(Comparison Comparison)

CompareTo このインスタンスの値が以下であるか、等しいか、または大きいかを示す整数を返します。指定されたオブジェクトまたはその他の Int16 インスタンスの値。

C# の Int16.CompareTo() メソッドは、このインスタンスと指定されたインスタンスを比較するために使用されます。 オブジェクトまたは別の Int16 インスタンス

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; }
}
ログイン後にコピー

Output

Employees before sorting
101
103
102
Employees after sorting by ID
101
102
103
Employees in descending order of ID
103
102
101
ログイン後にコピー

以上がC# で比較デリゲートを使用して複合型のリストを並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート