C# list 去重
时间: 2023-09-23 11:10:17 浏览: 177
要在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的去重。
相关问题
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**:
HashSet是一种不允许重复元素的集合,可以用来去重。
```csharp
List<int> numbers = new List<int> { 1, 2, 3, 2, 4, 3, 5 };
HashSet<int> uniqueNumbers = new HashSet<int>(numbers);
List<int> distinctNumbers = uniqueNumbers.ToList();
```
2. **使用LINQ的Distinct方法**:
LINQ提供了Distinct方法来去重。
```csharp
using System.Linq;
List<int> numbers = new List<int> { 1, 2, 3, 2, 4, 3, 5 };
List<int> distinctNumbers = numbers.Distinct().ToList();
```
3. **自定义去重**:
如果需要根据对象的某个属性去重,可以使用自定义的IEqualityComparer。
```csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonComparer : IEqualityComparer<Person>
{
public bool Equals(Person x, Person y)
{
return x.Name == y.Name && x.Age == y.Age;
}
public int GetHashCode(Person obj)
{
return (obj.Name + obj.Age).GetHashCode();
}
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 30 },
new Person { Name = "Bob", Age = 25 },
new Person { Name = "Alice", Age = 30 }
};
List<Person> distinctPeople = people.Distinct(new PersonComparer()).ToList();
```
这些方法都可以有效地对List进行去重操作。选择哪种方法取决于具体的需求和数据类型。
阅读全文
相关推荐
















