从列表集合中删除重复项

时间:2009-02-05 21:12:35

标签: c#

希望有人可以帮助我。我正在使用c#,我对它有些新意。 我正在将一个文本文件加载到我的应用程序中并将数据拆分为“,”当读取数据时,我正在读取字符串的一部分<list>有很多重复项,这些重复项根据我的txt文件而有所不同加载。有人可以告诉我如何检查并删除出现的任何和所有重复项。没有办法知道重复会出现什么,因为它有无限的可能性。

感谢您的帮助

4 个答案:

答案 0 :(得分:7)

如果您的目标是.NET 3.5,请使用Distinct扩展方法:

var deduplicated = list.Distinct();

答案 1 :(得分:4)

如果您将字符串加载到Set而不是List,则会自动丢弃重复项。

答案 2 :(得分:2)

一个简单/肮脏的例子如下:

public List<string> RemoveDuplicates(List<string> listWithDups)
{
   cleanList = new List<string>();
   foreach (string s in listWithDups)
   {
      if (!cleanList.Contains(s))
         cleanList.Add(s);
   }
   return cleanList;
}

作为警告:非常大的字符串上的String.Split会导致消耗大量内存并导致异常。

答案 3 :(得分:1)

Here's一篇文章,其中包含C#中的一些示例和解释。基本上,您只需跟踪唯一身份,并检查每个元素。

亚历