我繼承了一些C#代碼。我不完全理解類型如何在LINQ的上下文中工作。我有一些看起來像這樣的代碼:LINQ - GroupBy類型
foreach (var item in Model.Items.GroupBy(i => i.ID))
{ DoStuff(item); }
我試圖用更復雜的分組更新此代碼。我試圖通過ID
和DepartmentID
進行分組。在試圖做到這一點,我有:
var items = Model.Items.GroupBy(x => new { i.ID, i.DepartmentID }).OrderBy(i => i.Name).ThenByDescending(i => i.OrderDate);
foreach (var item in items)
{ DoStuff(item); }
當我編譯我的代碼,我得到的是說,一個編譯時錯誤:
Argument 1: cannot convert from 'System.Linq.IGrouping<<anonymous type:string ID, int DepartmentID>, MyProject.Item>' to 'System.Linq.IGrouping<MyProject.Item>'
從這個錯誤,我可以告訴大家,我當我做了兩個分組時,基本上已經構建了一個新類型。但是,我無法弄清楚如何按照他們的ID
和DepartmentID
對我的物品進行分組,然後僅返回System.Linq.IGrouping<MyProject.Item>
。我怎麼做?
我相信你可以縮短,如果你想從新元組(i.ID,i.DepartmentID)到Tuple.Create(i.ID,i.DepartmentID) –
@AlexKrups好點 - 編輯。 – woz