Comment supprimer un élément d’un IGrouping

Comment puis-je supprimer un object directement d’un IGrouping IGrouping ?

Le seul moyen que je connaisse actuellement est de générer un nouvel IGrouping sans l’élément concering, mais je n’aime pas cette méthode, car cela crée des problèmes au sein de mon application.

Des idées?

Non, il n’ya aucun moyen de muter un IGrouping<,> , du moins en général – et même si vous connaissiez le type concret, je ne crois pas que les implémentations exposées par le framework .NET permettent au groupe d’être muté.

Le regroupement est vraisemblablement le résultat d’une requête. Par conséquent, si possible, modifiez la requête d’origine pour exclure les valeurs qui ne vous intéressent pas.

Je sais que c’est une vieille question, mais j’espère que cela aidera quelqu’un d’autre. Une solution consiste à convertir le groupe en une liste, puis à utiliser les valeurs de la liste au lieu du groupe.

 var groups = someList.GroupBy(x => x...); foreach (var group in groups) { var groupList = group.ToList(); ... groupList.Remove(someItem); //Process the other code from groupList. } 

Vous pouvez TakeWhile aide de Select et utiliser TakeWhile si vous avez une condition testable (telle que null comme dans l’exemple) sur une propriété de votre groupe:

 var removedItemsList = group.Select(x => x.TakeWhile(t => t.someProperty != null)); 

Cela renverra un IEnumerable> .