0
需要一些幫助我有這個查詢,我想要什麼,如果材料組列表中的任何材料是可比較的返回true。需要一些有點複雜的LINQ查詢
mgroup.MaterialGroups.Select(x => x.Materials
.Any(m => Convert.ToBoolean(m.Comparable)))
.Any(x => x.Equals(true))
我想添加到此查詢中的還包括這一個。
mgroup.Materials.Any(m => Convert.ToBoolean(m.Comparable));
如何在查詢中將mgroup和materialgroups結合在一起,以便我可以選擇兩種材質?謝謝。
編輯 - 與LINQ戰鬥一段時間後,我崩潰了,剛剛合併爲
mgroup.Materials.Any(m => Convert.ToBoolean(m.Comparable) ||
mgroup.MaterialGroups.Select(x => x.Materials
.Any(c => Convert.ToBoolean(c.Comparable)))
.Any(x => x.Equals(true)))
它工作正常,但它是可怕的長,它嵌入在Asp.net MVC以使事情變得更差。如果任何人都可以簡化這將是驚人的。
PS-如果你想知道爲什麼我在它的,因爲沒有它的查詢返回的bool,而不是布爾的IEnumerable末尾添加多餘的。任何(X => x.Equals(真)。
謝謝,但遺憾的是,只有當mgroup.MaterialGroup具有可比較的材料,但只有當mgroup本身具有可比材料時纔會返回true,纔會返回true。我發佈的第二個查詢僅適用於後者,而我僅發佈第一個查詢如果可能,我試圖將它們合併成一個聲明 – Smith
@Smith好吧,現在我明白了,新代碼能工作嗎? –
是的,它確實有效。這不是一個簡單的查詢嗎?或者我可以不要LINQ不夠。大聲笑在你看來,哪一個更適合在視圖中使用?聲明IEnumerable僅用於條件是不好的? – Smith