LINQ从多个行上的条件中选择一个bool值

本文关键字:一个 bool 选择 条件 LINQ | 更新日期: 2023-09-27 17:49:52

我有一个数据系列,其中每个成员都包含一些元素,每个元素都有浮动变量D,以OADate (excel格式)表示日期。我需要找出,是否有任何系列与"邻居"相交。结果是1 bool。在LINQ中有什么方法可以做到这一点吗?这是我当前的工作代码

         bool overlaps = false;
        for (int i = 0; i < series.Count-1; i++) {
            if (series[i].elements.Last().D > series[i + 1].elements.First().D) {
                overlaps = true;
                break;
            }           
        }

谢谢:-)

LINQ从多个行上的条件中选择一个bool值

series.Skip(1)
      .Where((s,i) => series[i].elements.Last().D > s.elements.First().D).Any();

解释:因此我们跳过了第一个元素,那么series[i]实际上将与您的样本中的series[i]相同,并且s将是索引series[i+1]的项。

series.Zip(series.Skip(1).Concat(series.Take(1)), (a, b) => 
        new { a = a, b = b })
       .Any(c=>c.a.elements.Last().D > c.b.elements.First().D);

压缩series,并将其自身舍入1,然后将主series的项与旋转后的相应项进行比较!