c# list 去重
时间: 2023-11-22 13:47:15 浏览: 103
在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 去重
### 回答1:
在 C# 中,可以使用 Linq 来对 List 进行去重操作。具体可以使用 Distinct() 方法,示例如下:
```csharp
List<int> list = new List<int> { 1, 2, 2, 3, 3, 3 };
List<int> distinctList = list.Distinct().ToList();
```
上述代码将会把 `list` 中的重复元素去掉,得到一个新的不包含重复元素的 List `distinctList`,其中包含的元素为 `{ 1, 2, 3 }`。需要注意的是,去重后的 `distinctList` 不会影响原始的 `list` 对象。
### 回答2:
c是英文字母表中的第三个字母,也是拉丁字母表中的一部分。它是一个非常常用的字母,经常出现在很多单词中。它的发音为/k/,有时也可以发/s/的音。在很多语言中,c通常与其他字母组合成一些特殊的拼音。
在汉语拼音中,c与a、o、e、i、u等字母结合可以组成不同的音节,例如ca、ce、ci、co、cu等。c在中文中也有一些特殊的用法,例如表示“菜”、“厨房”、“钱”等词语,还可以用于组成一些姓氏,如陈、蔡、曹等。
同时,在计算机科学中,c也是一种编程语言的名称。C语言是一种高级编程语言,广泛应用于软件开发领域。它是一种通用的编程语言,可以用于开发各种类型的应用程序,包括操作系统、嵌入式系统以及各种软件工具等。
总之,c是一个非常常用的字母,在语言和计算机科学领域都有着重要的意义和作用。无论是作为字母的一部分,还是作为一种编程语言,c都扮演着重要的角色。
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的去重。
阅读全文