📅  最后修改于: 2023-12-03 14:39:45.780000             🧑  作者: Mango
在编程过程中,经常需要处理字符串列表,其中一个常见的问题就是如何查找重复项。本文将介绍在C#中如何在字符串列表中查找重复项的方法。
HashSet
是一种集合类型,它仅包含唯一的元素,可以用于查找重复项。我们可以将字符串列表的所有元素添加到HashSet
中,然后检查HashSet
中是否包含相同的元素。如果存在相同的元素,则说明它是一个重复项。
List<string> list = new List<string>{"apple", "banana", "apple", "orange"};
HashSet<string> set = new HashSet<string>();
foreach(string s in list)
{
if(!set.Add(s))
{
Console.WriteLine(s + " is a duplicate");
}
}
代码说明:
list
,其中包含重复的元素。HashSet
实例set
,将list
中的每个元素添加到set
中。foreach
循环遍历所有的元素。s
,HashSet.Add(s)
方法将尝试向set
中添加元素。如果元素已经存在,则该方法将返回false。if
语句来检查Add()
方法的返回值。如果返回false,则我们找到了一个重复项,输出该重复项的值。使用LINQ查询也是一个查找重复项的快速和方便的方法。下面的代码使用GroupBy()
方法将字符串列表分组,并对每个组进行计数。最后,我们选择具有计数大于1的组,并输出其中的元素。
List<string> list = new List<string>{"apple", "banana", "apple", "orange"};
var duplicates = list.GroupBy(x => x)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
foreach(string s in duplicates)
{
Console.WriteLine(s + " is a duplicate");
}
代码说明:
list
,其中包含重复的元素。list
中的重复项。GroupBy()
方法将字符串列表分组以计数每个元素的数量。对于每个组,我们选择具有计数大于1的组。Select()
方法用于选择具有重复元素的组的键。foreach
循环遍历所有的重复元素,输出每个元素的值。总结
本文介绍了如何在字符串列表中查找重复项的两种方法:使用HashSet
和使用LINQ。这些方法都是快速和方便的,可以帮助您处理和处理大量字符串数据。