我有一些按属性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属性?

最佳答案

您的案例是基于单个列进行分组,因此可以通过组键进行访问。这意味着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;
}

10-08 07:02