我需要检查并显示List 集合中包含的所有重复项。//Check for duplicate itemsforeach (string y in myListCollection){ if (myListCollection.FindAll(x => x.Contains(y)).Count > 1) { foreach (string path in myListCollection.FindAll(x => x.Contains(y))) { listbox1.items.add(path); } }}但这将返回整个列表。请问我做错了什么? 最佳答案 您可以改用LINQ:myListCollection.GroupBy(x => x) .Where(x => x.Count() > 1) .Select(x => x.Key) .ToList();首先group所有项目的值,然后从包含多个项目的组中获取每个键。您正在搜索的容器中将不会返回完全重复的项目。例如,如果您具有hell和hello,即使不是重复的项目,也会将hello添加到listBox中。检查是否相等:foreach (string y in myListCollection){ if (myListCollection.FindAll(x => x == y).Count > 1) { listbox1.Items.add(y); }}而且我不认为您需要嵌套的foreach循环。无论如何,上面的代码将添加重复的项目,但仍然不完全正确。如果您有四个hell它将在。要解决此问题,可以使用hell,也可以检查是否已添加该项,但不需要。就像我在上面显示的那样使用listBox也可以使用Distinct方法将所有项目添加到GroupBy中,如下所示:myListCollection.GroupBy(x => x) .Where(x => x.Count() > 1) .Select(x => x.Key) .ToList() .ForEach(x => listBox1.Items.Add(x));关于c# - 检查List <>中是否存在重复项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22056625/ 10-10 13:16