簡體   English   中英

使用Linq C在循環中獲取分組屬性#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM