我正在使用lamda表達式篩選查詢。C#Lambda表達式不返回預期結果
基本上,我有行由段組成,這些段標記爲刪除,插入或空。
我想要返回的是已標記爲已刪除但其任何兄弟沒有標記爲已刪除的段。作爲一個例子,
Line: "Soylent Green is people!" Broken into 2 segments...
Segment 1: "Soylent Green " (marked as deleted)
Segment 2: "is people!" (not marked as deleted)
應該返回我段1,但下面的例子中,
Line: "Open the pod bay doors Hal!" Broken into 3 segments...
Segment 1: "Open the " (marked as deleted)
Segment 2: "pod bay " (marked as deleted)
Segment 3: "doors Hal!" (marked as deleted)
應該不會返回任何段。請參見下面的代碼:
return seg => seg.ModType == Deleted &&
seg.Line.Segments.Any(segs => segs.ID != seg.ID &&
segs.ModType != Deleted);
謝謝,我感謝所有幫助或建議,爲什麼這是行不通的。
你還沒有向我們展示足夠的真實。這裏的「身份證」是什麼?請提供簡短但完整的*程序來演示此問題。我懷疑,只要我們能夠重現它,我們會很容易地找到問題。我*會*建議擁有「seg」和「segs」是混淆的祕訣。 – 2009-08-21 18:41:02
你確定Line.Segments集合是正確的嗎? – womp 2009-08-21 18:42:14
請發佈一個完整但簡短的程序,該程序可以被編譯和執行以重現您的問題。這將幫助我們爲您提供幫助,方法是向我們提供可調試和調整的代碼,以便獲得理想的結果。 – 2009-08-21 18:43:18