C# list按id去重
时间: 2024-08-14 10:01:43 浏览: 49
C# 实现Distinct将对象按条件去重
5星 · 资源好评率100%
在C#中,如果你有一个List并想要按照ID字段去除重复项,你可以使用`Distinct()`方法结合Lambda表达式来实现。这里有两个示例:
1. 如果你的实体类有明确的Id属性,可以直接基于这个属性进行去重。假设你有一个名为`MyEntity`的类,其中包含`Id`和`Name`字段,你可以这样做[^1]:
```csharp
// 假设MyEntity有一个Id属性
var myList = new List<MyEntity>();
// 去除重复项,只保留基于Id的不同实例
var distinctList = myList.Where(e => e.Id != null).Distinct((e1, e2) => e1.Id).ToList();
```
2. 对于值类型元素的列表(如`List<int>`),你可以直接利用`Distinct()`方法,因为它会隐式地比较元素的值。但如果你的ID是整数,你需要创建一个新的列表来存储去重后的结果:
```csharp
// 示例中的整数列表
List<int> listWithDuplicates = new List<int> { 1, 1, 2, 2, 3, 4, 5, 5 };
// 去重
var uniqueInts = listWithDuplicates.Distinct().ToList();
```
在这个例子中,`Distinct()`默认按照元素的值进行比较,所以如果两个整数值相同,它们会被视为相同的。
阅读全文