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

2023年 8月 29日 30.8k 0

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

List 类中 Sort() 方法的重载需要 Comparison 委托
作为参数传递。

public void Sort(Comparison 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 listEmployees = new List();
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

登录后复制

以上就是如何使用 C# 中的比较委托对复杂类型列表进行排序?的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论