计算来自数据表或数组的记录,这些记录存在于另一个数据表中的值之间

时间:2014-02-17 21:08:32

标签: c# linq

我在数据表中有2列,第1列是产品的起始位置,第2列是结束位置。我试图计算起点和终点之间存在的数据表中的每个点。请参见附有记录向下的图像。 底部的行是标准GroupBy的结果,这很容易,但是没有给出所需的结果,“Actual Required”下面的行就是我想要实现的。 我希望这很清楚,因为我自己无法让它工作,并且在任何网站上都找不到任何可以给我类似示例的内容,使我能够理解如何在不循环遍历每个非常慢的记录的情况下执行此操作。

enter image description here

标准的Linq GroupBy查询不合适,因为它只计算起点和终点,而不是两者之间的值。典型的数据集是数千条记录和数百个点。

提前致谢。

int[] arr = new int[500];
for(int s = 0;s<arr.Length;s++)
{
    arr[s] = dt.AsEnumerable()
               .Where(r => r.Field<int>("Start") <= s && r.Field<int>("End") >= s)
               .Count();
};

0 个答案:

没有答案