在C#中,可以使用LINQ(Language Integrated Query)或Array.Sort方法对对象的数组列表按特定参数进行排序。以下是两种常见的方法:
假设我们有一个Person
类,其中包含Name
和Age
属性,我们想要根据Age
属性对Person
对象的数组进行排序。
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
// 创建Person对象的数组列表
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Charlie", Age = 35 }
};
// 使用LINQ按Age属性排序
var sortedPeople = people.OrderBy(p => p.Age).ToList();
// 输出排序后的结果
foreach (var person in sortedPeople)
{
Console.WriteLine($"{person.Name}, {person.Age}");
}
如果使用的是数组而不是列表,可以使用Array.Sort
方法,并提供一个比较器。
Person[] peopleArray = new Person[]
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Charlie", Age = 35 }
};
// 使用Array.Sort方法和自定义比较器
Array.Sort(peopleArray, (x, y) => x.Age.CompareTo(y.Age));
// 输出排序后的结果
foreach (var person in peopleArray)
{
Console.WriteLine($"{person.Name}, {person.Age}");
}
Array.Sort
或者并行LINQ(PLINQ)来提高性能。ThenBy
或在比较器中添加更多的逻辑。// 使用LINQ按Age然后按Name排序
var sortedPeopleMulti = people.OrderBy(p => p.Age).ThenBy(p => p.Name).ToList();
通过上述方法,可以有效地对C#中的对象数组列表进行排序,并根据不同的需求选择合适的方法。
领取专属 10元无门槛券
手把手带您无忧上云