我輸入可能看起來像這樣的:如何組只能用相同屬性後續項目使用LINQ
A 1 2 C,D
A 2 3 C,E
B 4 5 F
A 6 7
A 7 8 D
A 9 10 E
我這些信息存儲在我的模型類:
public class Item {
public String Name {get;set;}
public int Start {get;set;}
public int End {get;set;}
public List<string> Orders {get;set;}
}
我試圖用Linq合併所有後續項目,如果項目具有相同的名稱並生成具有組中第一個項目的起始值的新項目,組中最後一個項目的結束值和所有定單列表的聯合。然後,它應該是這樣的:
A 1 3 C,D,E
B 4 5 F
A 6 10 D, E
我嘗試以下LINQ的聲明,然而,組中的所有作爲和燒烤在一起,獨立的是否存在之間的任何其他項目。我需要改變什麼?訂單列表的聯合也缺失。
var groups = items.GroupBy(i => i.Name).ToList();
foreach (var group in groups)
{
result.Add(new Item {
Start = group.First().Start,
End = group.Last().End,
Name = group.First().Name });
}
你的結果變量會成爲他的組變量的權利? –
不應該是我== items.Count - 1? – RoflcoptrException
@RoflcoptrException否,「-2」部分是由於我跳過了「items」列表中的第一項。此外,在我進行比較時,'i'具有previos迭代的值,因此在第一次迭代中'i'等於零,使得items.Count_2也爲零,對於只有兩個項目的集合。 – HimBromBeere