C# list<XYZ>去重
时间: 2024-09-23 08:12:49 浏览: 39
C# XmlToList<T> xml转换成对象,Xml转对象
5星 · 资源好评率100%
在C#中,如果你有一个`List<T>`类型的集合,其中包含同一种类型`XYZ`的对象,并你想去除其中的重复项,你可以使用多种方法:
1. **使用LINQ**:
使用Lambdas和`Distinct()`方法可以方便地从列表中筛选出唯一元素:
```csharp
List<XYZ> uniqueItems = originalList.Distinct().ToList();
```
2. **自定义IEqualityComparer<T>**:
如果`XYZ`实现了`IEquatable<XYZ>`或者你为它定义了相等性的规则,你可以创建一个比较器并传给`Distinct()`:
```csharp
var comparer = new MyXYZEqualityComparer();
List<XYZ> uniqueItems = originalList.Distinct(comparer).ToList();
```
3. **添加到新的HashSet**:
HashSet是一个不允许有重复元素的数据结构,你可以先转换成HashSet再转回List:
```csharp
HashSet<XYZ> hashSet = new HashSet<originalList>();
List<XYZ> uniqueItems = hashSet.ToList();
```
阅读全文