【问题标题】:Convert IEnumerable<IGrouping<T, K>> to IEnumerable<K> [duplicate]将 IEnumerable<IGrouping<T, K>> 转换为 IEnumerable<K> [重复]
【发布时间】:2014-07-30 03:35:36
【问题描述】:

IEnumerable&lt;IGrouping&lt;T,K&gt;&gt; 转换为IEnumerable&lt;K&gt; 的最佳方法是什么?

看来这种方式可行:

myEnumerable = myEnumerableOfGroups
    .Select( group => group.AsEnumerable)
    .Aggregate((enumA, enumB) => enumA.Concat(enumB));

有没有更有效的方法?

【问题讨论】:

  • 这取决于你想要完成什么。您是否只想按顺序迭代每个分组中的所有 K 个对象,即撤消分组?
  • 当心@cdhowie,如果您停下来提问,您将错过代表火车。在同一秒内给出三个答案。
  • @Rawling 我宁愿有一个明确记录的问题,而不是几个愚蠢的代表点。
  • 尝试回答主题中包含IEnumerable的问题,并在同一秒内找到其10个答案
  • @Rawling 哈哈 - 喜欢“rep train”。

标签: c# linq


【解决方案1】:

应该这样做:

myEnumerable = myEnumerableOfGroups.SelectMany(group => group);

SelectMany 重载的 MSDN 页面是 here

【讨论】:

  • 哇,真快 :),谢谢
  • @MichaelB 很遗憾,对此类问题的最快反应是“代表!”不是“可能是重复的”。
  • @MichaelB 这告诉你在提出问题之前你做了多少研究,而不是回答问题的人的海报技术水平。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 2018-08-04
相关资源
最近更新 更多