C#C
C#11mo ago
YetAnohterOne

Can I / should I enumerate over an IGrouping more than once?

var groupings = myList.GroupBy(listElement => listElement.Key);
foreach(var groupoing in groupings)
{
    foreach(var elt in grouping)
        DoSomething(elt);
    foreach(var elt2 in grouping)
        DoSomethingElse(elt2);
}

Is this code correct / safe? Is it safe to iterate an IGrouping more than once?
Or should I rather do:
var groupings = myList.GroupBy(listElement => listElement.Key);
foreach(var grouping in groupings)
{
    var groupingList = grouping.ToList();
    foreach(var elt in groupingList)
        DoSomething(elt);
    foreach(var elt2 in groupoingList)
        DoSomethingElse(elt2);
}
Was this page helpful?