在C#中,DistinctBy
是一个扩展方法,它属于System.Linq
命名空间。这个方法用于从集合中删除重复项,但只根据指定的属性进行比较。这在处理具有多个属性的对象时非常有用,特别是当你想要根据其中一个属性来区分重复项时。
DistinctBy
方法接受两个参数:一个是要进行去重操作的集合,另一个是用于确定重复项的属性。这个方法返回一个新的集合,其中不包含重复的元素。
下面是一个使用DistinctBy
方法的示例:
using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { Listpeople = new List { new Person { Name = "John", Age = 30 }, new Person { Name = "Jane", Age = 25 }, new Person { Name = "John", Age = 30 } }; var distinctPeople = people.DistinctBy(p => p.Name); foreach (var person in distinctPeople) { Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); } } } class Person { public string Name { get; set; } public int Age { get; set; } }
在这个示例中,我们有一个Person
对象列表,其中包含重复的Name
属性值。通过使用DistinctBy
方法,我们可以根据Name
属性创建一个新的不重复的列表。输出结果如下:
Name: John, Age: 30 Name: Jane, Age: 25