在C#中,DistinctBy
是一個擴展方法,它屬于System.Linq
命名空間。這個方法用于從集合中刪除重復項,但只根據指定的屬性進行比較。這在處理具有多個屬性的對象時非常有用,特別是當你想要根據其中一個屬性來區分重復項時。
DistinctBy
方法接受兩個參數:一個是要進行去重操作的集合,另一個是用于確定重復項的屬性。這個方法返回一個新的集合,其中不包含重復的元素。
下面是一個使用DistinctBy
方法的示例:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<Person> people = new List<Person>
{
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