Csharp list去重
时间: 2023-05-24 15:02:09 浏览: 101
可以使用Linq中的Distinct()方法来去除C#中List中的重复项。示例代码如下:
```csharp
List<int> list = new List<int>() { 1, 2, 3, 2, 4, 1 };
List<int> distinctList = list.Distinct().ToList();
// distinctList中的结果为1, 2, 3, 4
```
相关问题
C# list 去重
要在C#中对一个List进行去重,可以使用以下方法:
1. 使用HashSet:将List作为HashSet的参数,这将自动删除重复的元素。然后将HashSet转换回List。
```csharp
List<T> uniqueList = new List<T>(new HashSet<T>(originalList));
```
其中,T是List中元素的类型。
2. 使用LINQ的Distinct方法:通过使用Distinct方法,可以返回一个不包含重复元素的新List。
```csharp
List<T> uniqueList = originalList.Distinct().ToList();
```
3. 自定义去重器:如果List中的元素自定义了Equals和GetHashCode方法,可以使用自定义的去重器。
```csharp
List<T> uniqueList = originalList.Distinct(new CustomEqualityComparer()).ToList();
```
其中,CustomEqualityComparer是一个实现了IEqualityComparer<T>接口的自定义比较器。
总结起来,要在C#中对List进行去重,可以使用HashSet、LINQ的Distinct方法或自定义去重器。以上是三种常见的方法,你可以根据实际情况选择其中一种来实现List的去重。
list 去重 C#
在C#中,有多种方法可以对列表进行去重操作。根据你提供的引用内容,我将为你介绍三种常见的方法:
方法一:使用扩展方法
你可以使用扩展方法 `MyDistinct`,该方法通过指定一个委托,对列表进行自定义去重。例如,你可以根据 `Id` 和 `Name` 进行去重操作。下面是一个示例代码:
```csharp
list.MyDistinct(s => new { s.Id, s.Name }).ToList();
```
其中,`s => new { s.Id, s.Name }` 是一个委托,用于指定去重的条件。
方法二:使用 `Distinct` 方法
你可以直接使用 `Distinct` 方法对值类型元素集合进行去重操作。例如,对于一个整数类型的列表 `list`,你可以使用以下代码:
```csharp
list.Distinct().ToList().ForEach(s => Console.WriteLine(s));
```
这将输出去重后的列表元素。
方法三:自定义比较器
你还可以使用自定义的比较器来进行列表的去重操作。首先,你需要创建一个实现了 `IEqualityComparer<T>` 接口的比较器类。例如,以下是一个比较器类 `Compare` 的示例代码:
```csharp
public class Compare : IEqualityComparer<T>
{
public bool Equals(T x, T y)
{
// 自定义比较逻辑,判断 x 和 y 是否相等
}
public int GetHashCode(T obj)
{
// 自定义生成哈希码的逻辑
}
}
```
然后,你可以使用 `Distinct` 方法并传入自定义的比较器来进行去重。例如:
```csharp
list.Distinct(new Compare()).ToList().ForEach(s => Console.WriteLine(s.ToString()));
```
这将根据自定义的比较器进行去重操作,并输出去重后的列表元素。
综上所述,这是三种在C#中对列表进行去重的常见方法。你可以根据具体的需求选择其中的一种方法来使用。