📅  最后修改于: 2023-12-03 14:59:40.280000             🧑  作者: Mango
LINQ是.NET Framework内置的一种语言集成查询(Language Integrated Query)技术,用于对各种数据源执行一致查询操作。在使用LINQ时,我们经常需要对数据进行分组、去重、排序等操作。本文将介绍如何使用LINQ按属性唯一。
假设我们有一个Person类,其中包含Name和Age属性。
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
现在我们有一个Person列表,需要按姓名去重。我们可以使用以下LINQ查询:
List<Person> persons = new List<Person>()
{
new Person() { Name = "Tom", Age = 18 },
new Person() { Name = "Jerry", Age = 20 },
new Person() { Name = "Tom", Age = 25 },
new Person() { Name = "Tom", Age = 30 },
new Person() { Name = "Mary", Age = 22 }
};
var uniquePersons = persons.GroupBy(p => p.Name).Select(g => g.First()).ToList();
在此查询中,我们首先使用GroupBy
方法按照Name属性进行分组。然后使用Select
方法获取每个分组的第一个元素,即保留了Name属性的唯一值。最后使用ToList
方法将结果转换为List<Person>
类型。
现在我们有一个数字列表,需要按数字从小到大排序,并将结果转换为字符串列表。我们可以使用以下LINQ查询:
List<int> numbers = new List<int>() { 3, 1, 4, 1, 5, 9, 2, 6, 5 };
var sortedNumbers = numbers.OrderBy(n => n).Select(n => n.ToString()).ToList();
在此查询中,我们首先使用OrderBy
方法按照数字属性进行排序。然后使用Select
方法将数字转换为字符串类型。最后使用ToList
方法将结果转换为List<string>
类型。
使用LINQ按属性唯一和排序可以方便地对数据进行处理。通过本文的介绍,相信大家已经掌握了相关技巧,让我们在实际开发中更好地利用LINQ的强大特性。