按原始组标准对 IGrouping 重新分组

Regroup an IGrouping by original group criteria

这听起来很愚蠢(也许答案很简单),但我只是没有看到这个问题的解决方案:

假设我有这个:

public IGrouping<T, Item> process<T>(IGrouping<T,Item> group)
{
       var toIgnore = group.AsEnumerable().Where(ignoreExpression);
       var toContinue = group.AsEnumerable().Except(toIgnore);      

       // how to group the "toContinue" Enumerable by the same criteria as the group ?
       //

       return newGroup;
 }

我想要做的是:我得到了这个组,我想忽略每个组中的一些项目(而不是整个组)。到目前为止,一切都很好。然后我想根据原来的标准重新分组——这就是我被困的地方。

这是怎么做到的?我可以从分组中找到原始标准(这当然是 group.Key),但我怎样才能将结果 "toContinue"(甚至 toContinue.ToList())重新分组 [=24] =]?

谢谢大家的建议

安德烈亚斯

组键在 IGrouping 键上 属性。

因为 IGrouping 是 IEnumerable 一旦你做了一个 Where,你就失去了分组键。您必须在 GroupBy() 之前进行过滤,而不是在

之后