簡體   English   中英

LINQ從多行的條件中選擇一個bool

[英]LINQ select one bool from condition over multiple rows

我有數據系列,其中每個成員都包含一些元素,每個元素都有浮點變量D,表示OADate中的日期(excel格式)。 我需要找出,如果該系列中的任何一個與“鄰居”相交。 結果就是一個人。 在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;
            }           
        }

謝謝 :-)

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自身倒圓一個,然后比較主series的項目與相應的一個旋轉的項目!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM