我想在compare
中的List
内C#
个元素。我需要检查列表中是否有相同的数据。有人可以帮我吗?
答案 0 :(得分:0)
您可以尝试这样做,例如:
var collection = new List<double>(new double[] { 10, 20, 11, 10, 20, 44 });
var info = collection.GroupBy(e => e).ToDictionary(e => e.Key, e => e.Count());
此处info
包含key
的双精度值和collection
中value
的此数字的编号。
这种结构可以用于任何类型的List
元素。
答案 1 :(得分:-1)
您可以使用LINQ扩展方法
这是一个LINQ比较列表的例子:
list<string> arr1 = new list<string>(){ "A", "b", "C," };
list<string> arr2 = new list<string>(){ "A", "b", "C," };
将上述数组与SequentialEqual()方法
进行比较bool result = arr3.SequentialEqual(arr2);
布尔结果将包含true,因为两个列表中的项均相等
希望这有帮助
答案 2 :(得分:-1)
如果您只是想知道列表中是否有多个项目具有相同的值,您可以使用此功能..
public bool HasSameData<T>(List<T> myList)
{
return myList.Distinct().Count() != myList.Count();
}
请注意,这适用于任何类型。
void Main()
{
var myList = new List<int> {1,2,3,4,5,6,7,8,9};
var myList2 = new List<int> {1,1,3,4,5,6,7,8,9};
Console.WriteLine(HasSameData(myList));
Console.WriteLine(HasSameData(myList2));
var myList3 = new List<String> {"hello","world","foo","bar"};
var myList4 = new List<String> {"hello","foo","foo","bar"};
Console.WriteLine(HasSameData(myList3));
Console.WriteLine(HasSameData(myList4));
Console.ReadLine();
}
输出:
False
True
False
True