需求: 在一个未排序的列表中,确定是否存在重复项。
我通常会使用n平方的嵌套循环来解决这个问题。我想知道其他人是如何解决这个问题的。在Linq中是否有一种优雅、高性能的方法?最好是可以接受lambda或比较器的通用方法。
注意: 这与LINQ查找列表中的重复项不同,后者返回实际的重复项。我只需要知道是否存在重复项。
需求: 在一个未排序的列表中,确定是否存在重复项。
我通常会使用n平方的嵌套循环来解决这个问题。我想知道其他人是如何解决这个问题的。在Linq中是否有一种优雅、高性能的方法?最好是可以接受lambda或比较器的通用方法。
注意: 这与LINQ查找列表中的重复项不同,后者返回实际的重复项。我只需要知道是否存在重复项。
还没有看到有人做过这个,所以我刚写了一个小程序。它很简单。使用Contains()方法,但我不知道这种方法的可伸缩性如何。
Console.WriteLine("Please enter 5 unique numbers....");
List<int> uniqueNums = new List<int>() { };
while (uniqueNums.Count < 5)
{
int input = Convert.ToInt32(Console.ReadLine());
if (uniqueNums.Contains(input))
{
Console.WriteLine("Add a different number");
}
uniqueNums.Add(input);
}
uniqueNums.Sort();
foreach (var n in uniqueNums)
{
Console.WriteLine(n);
}