使用与Linq区别的问题

时间:2010-05-03 13:29:19

标签: c# .net linq distinct

您好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 !!!!

你能帮我解决一下吗?

谢谢,

3 个答案:

答案 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)

Ghost调试尝试:

您是否在GetIds()功能中生成了新的随机ID?如果是这样,请记住您应该在函数外部实例化Random ...