[英]combine two list and linq query to order by two different fields from different lists
[英]Adding to two different lists from one LINQ query
我有兩個列表(分別稱為foo和bar),我想最小化LINQ查詢的數量(好的,我知道它們的開銷很小,但是兩個查詢要花兩倍的時間,而使用iOS開發LINQ可能會出現問題) 。 該查詢將完全相同,但我想將結果添加到兩個列表中。
我當前的代碼如下所示
List<foo> foos = new List<foos>();
List<bar> bars = new List<bars>();
var agg = (from fa in mainList
from pa in fa.subList
from cg in pa.subSubList
let cr = pa.anotherSubList
where cg.DatePerformed.Year == DateTime.Now.Year - 1 && cr.Count != 0
select foos.Add(fa)
select bars.Add(pa));
編譯器在第二選擇時抱怨。
有沒有辦法在LINQ中做我想做的事情,還是我需要使用兩個循環?
您可以選擇兩個項目,然后遍歷結果以將一個項目添加到第一個列表,將另一個添加到另一個列表。 您可以使用可以容納兩個項目,元組或僅這樣的匿名類型的類來做到這一點:
var result = from fa in mainList
from pa in fa.subList
from cg in pa.subSubList
let cr = pa.anotherSubList
where cg.DatePerformed.Year == DateTime.Now.Year - 1 && cr.Count != 0
select new {First=fa, Second=pa};
foreach (var pair in result)
{
foos.Add(pair.fa);
bars.Add(pair.pa);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.