📅  最后修改于: 2023-12-03 14:39:45.752000             🧑  作者: Mango
在编程中,我们经常需要在列表中查找重复项。C# 提供了多种方法来实现这一功能。下面将介绍几种常用的方法,并附带代码示例。
HashSet
using System;
using System.Collections.Generic;
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int> { 1, 2, 3, 4, 3, 2, 1 };
HashSet<int> set = new HashSet<int>();
List<int> duplicates = new List<int>();
foreach (int item in list)
{
if (!set.Add(item))
{
duplicates.Add(item);
}
}
Console.WriteLine("重复项:");
foreach (int item in duplicates)
{
Console.WriteLine(item);
}
}
}
方法说明:
HashSet
对象用于存储列表中的唯一项。HashSet
中,则将其添加到重复项列表中。using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main(string[] args)
{
List<int> list = new List<int> { 1, 2, 3, 4, 3, 2, 1 };
var duplicates = list.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
Console.WriteLine("重复项:");
foreach (int item in duplicates)
{
Console.WriteLine(item);
}
}
}
方法说明:
GroupBy
方法按照元素进行分组。Where
方法筛选出至少有两个元素的组。Select
方法获取每个组的键(即重复项)。这两种方法可以根据实际需求选择使用,它们都能有效地在列表中查找重复项。
请注意,以上代码示例中的列表为整数类型,你可以根据需要修改为其他类型的列表。