C#去重
时间: 2023-06-22 12:23:20 浏览: 59
C#中去重可以使用`Distinct()`方法,这个方法可以返回一个不包含重复元素的新序列。下面是一个简单的例子:
```csharp
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
int[] numbers = { 1, 2, 3, 2, 1 };
var distinctNumbers = numbers.Distinct();
foreach (var number in distinctNumbers)
{
Console.WriteLine(number);
}
}
}
```
输出结果为:
```
1
2
3
```
在这个例子中,我们使用了`Distinct()`方法来去重整数数组中的元素。
相关问题
c# list 去重
在C#中,有多种方法可以实现List去重,其中常用的方法包括使用HashSet、Linq以及自定义比较器。具体实现方法如下:
1. 使用HashSet去重
```
List<int> list = new List<int> { 1, 2, 3, 3, 4, 5, 5 };
HashSet<int> set = new HashSet<int>(list);
List<int> result = new List<int>(set);
```
2. 使用Linq去重
```
List<int> list = new List<int> { 1, 2, 3, 3, 4, 5, 5 };
List<int> result = list.Distinct().ToList();
```
3. 自定义比较器去重
```
public class MyComparer : IEqualityComparer<int>
{
public bool Equals(int x, int y)
{
return x == y;
}
public int GetHashCode(int obj)
{
return obj.GetHashCode();
}
}
List<int> list = new List<int> { 1, 2, 3, 3, 4, 5, 5 };
List<int> result = list.Distinct(new MyComparer()).ToList();
```
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的去重。