c#集合根据属性去重
时间: 2023-07-20 14:03:52 浏览: 109
在 C# 中,可以使用 LINQ 来根据对象的属性进行去重。具体步骤如下:
1. 定义一个类,包含需要去重的属性
```csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
```
2. 创建一个 List<Person> 对象,包含多个 Person 类型的实例
```csharp
var persons = new List<Person>
{
new Person { Name = "Tom", Age = 18 },
new Person { Name = "Jerry", Age = 20 },
new Person { Name = "Tom", Age = 18 },
new Person { Name = "Tom", Age = 25 },
};
```
3. 使用 LINQ 的 `DistinctBy` 方法根据属性进行去重
```csharp
var distinctPersons = persons.DistinctBy(p => p.Name);
```
上述代码中,`DistinctBy` 方法需要使用一个 lambda 表达式来指定去重的属性,这里使用 `p => p.Name` 来指定按照 `Name` 属性进行去重。如果需要根据多个属性进行去重,可以使用 `p => new { p.Name, p.Age }` 等方式来指定。
最终的 `distinctPersons` 变量中,只会包含不重复的 Person 对象。
阅读全文