見過不少人、經過不少事、也吃過不少苦,感悟世事無常、人心多變,靠著回憶將往事串珠成鏈,聊聊感情、談談發展,我慢慢寫、你一點一點看......
1、使用?List<T>.Sort
?方法與自定義比較器
public?class?Person
{
? ??public?string Name {?get;?set; }
? ??public?int Age {?get;?set; }
}
public?class?PersonComparer?:?IComparer<Person>
{
? ??public?int Compare(Person x, Person y)
? ? {
? ? ? ??// 按年齡升序排序
? ? ? ? return x.Age.CompareTo(y.Age);
? ? ? ? // 或更復雜的排序邏輯
? ? }
}
class Program
{
? ? static void Main()
? ? {
? ? ? ? List<Person> people = new List<Person>
? ? ? ? {
? ? ? ? ? ? new Person { Name = "A", Age = 15 },
? ? ? ? ? ? new Person { Name = "B", Age = 25 },
? ? ? ? ? ? new Person { Name = "C", Age = 35 }
? ? ? ? };
? ? ? ? people.Sort(new PersonComparer());
? ? ? ? foreach (var person in people)
? ? ? ? {
? ? ? ? ? ? Console.WriteLine($"{person.Name}, {person.Age}");
? ? ? ? }
? ? }
}
2、使用 LINQ 的?OrderBy
?方法與自定義鍵選擇器
var?people =?new?List<Person>
? ? ? ? {
? ? ? ? ? ??new?Person?{?Name?=?"Alice",?Age?=?30?},
? ? ? ? ? ??new?Person?{?Name?=?"Bob",?Age?=?25?},
? ? ? ? ? ??new?Person?{?Name?=?"Charlie",?Age?=?35?}
? ? ? ? };? ? ? ??var?sortedPeople = people.OrderBy(p?=>?p.Age).ToList(); //var?sortedPeople = people.OrderBy(p?=>?p.Age).ThenBy(p?=>?p.Name).ToList();
? ? ? ? foreach (var?person?in?sortedPeople)
? ? ? ? {
? ? ? ? ? ??Console.WriteLine($"{person.Name}, {person.Age}");
? ? ? ? }
3、默認的排序順序?
public?class?Person?:?IComparable<Person>
{
? ??public?string Name {?get;?set; }
? ??public?int Age {?get;?set; }
? ??public?int CompareTo(Person other)
? ? {
? ? ? ??if?(other ==?null)?return?1;
? ? ? ??return?this.Age.CompareTo(other.Age);
? ? }
}
// 然后可以直接使用 Sort 方法,不需要傳遞比較器
people.Sort();
關注我,不失聯。有啥問題請留言。
感情戀愛合集https://blog.csdn.net/forever8341/category_12863789.html
職業發展故事https://blog.csdn.net/forever8341/category_12863790.html
常用代碼片段https://blog.csdn.net/forever8341/category_12863793.html
程序開發教程https://blog.csdn.net/forever8341/category_12863792.html
自我備考經驗?https://blog.csdn.net/forever8341/category_12863791.html
高階高效代碼https://blog.csdn.net/forever8341/category_12873345.html
金融語言解析https://blog.csdn.net/forever8341/category_12877262.html