您好Linq有问题。我有一个带有重复条目的double值数组。我想从中提取不同的值。我有以下代码无法正常工作。
double[] dIds = GetIds(); //dIds has more than 10,000 items
var itemIdCollection = from id in dIds.Distinct()
select id;
Console.WriteLine(itemIdCollection.count().ToString()); //count is just 2 !!!!
你能帮我解决一下吗?
谢谢,
答案 0 :(得分:1)
首先,你不必做那个怪异的选择。只需致电dIds.Distinct()
即可。其次,我可以保证它适用于任何双打数组。你的双打与其他人的双打没有什么不同。
显然,如果Distinct()返回的计数为2(btw,Console.WriteLine(itemIdCollection.Count())
就足够了),那是因为GetIds()
返回的数组只包含两个不同的双精度数。
您的假设,它们是不正确的。
答案 1 :(得分:0)
试试这个:
List<double> x = new List<double>()
{
3, 4, 5, 6, 7, 7, 7, 8, 8
};
List<double> distinct = x.Distinct().ToList();
distinct.ForEach(y => Console.WriteLine(y));
Console.ReadKey();
答案 2 :(得分:0)
您是否在GetIds()
功能中生成了新的随机ID?如果是这样,请记住您应该在函数外部实例化Random
...