[英]Get Grouped Property in Loop with Linq C#
我有一些CartItems
,我按屬性FleetID
分組。
var groupedCartItems = cart.CartItems.OrderBy(x => x.FleetID)
.GroupBy(x => x.FleetID);
foreach (var fleetItem in groupedCartItems)
{
/////// var currentFleetID = fleetItem.GroupedFleetID; ////////
foreach(var itm in fleetItem)
{
}
}
在每個組的循環中,如何訪問FleetID
分組的FleetID
屬性?
您的情況是,您基於單個列進行分組,因此可以通過組密鑰進行訪問。 這意味着fleetItem.Key
將為您提供該迭代中特定組的鍵。 如果你想從內部循環訪問相同的意思,你可以使用itm.FleetID
。
foreach (var fleetItem in groupedCartItems)
{
var currentFleetID = fleetItem.Key; //outer loop
foreach(var itm in fleetItem)
{
var groupId = itm.FleetID; // inner loop
}
}
如果您基於多個列執行該組意味着您可以根據鍵訪問它們,請考慮分組就像下一個:
var groupedCartItems = cart.CartItems.OrderBy(x => x.FleetID)
.GroupBy(x => new { x.FleetID,x.FleetName});
然后您可以像下面這樣訪問它們:
foreach (var fleetItem in groupedCartItems)
{
var currentFleetID = fleetItem.Key.FleetID;
var currentFleetName = fleetItem.Key.FleetName;
}
當您使用GroupBy
您將獲得一組IGrouping
對象,每個對象都有一個Key
屬性,這是您想要的,也可以使用foreach
循環進行迭代以獲取組中的項目。 https://msdn.microsoft.com/en-us/library/bb343251(v=vs.110).aspx
var groupedCartItems = cart.CartItems.OrderBy(x => x.FleetID)
.GroupBy(x => x.FleetID);
foreach (var group in groupedCartItems)
{
var currentFleetID = group.Key; ////////
foreach(var itm in group)
{
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.