LINQ,对 IEnumerable
我有以下元素(可能超过两个):
new[] { new[] { "A" }, new[] { "B", "C" } }
new[] { new[] { "D" }, new[] { "E", "F" } }
我想将它们分组如下:
“A”,“D”
“B”,“C”,“E”,“F”
什么是最优化的方式(或者至少是一个好方法)?
是否可以以某种方式存储第一对“D”(以及第二对 E”和“F”)一开始不在同一个数组中?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我昨天刚遇到这个。不是最具可读性,但它实现了目标。
arrayPos 值将指示原始位置。
I just ran into this yesterday. Not the most readable, but it accomplishes the objective.
The arrayPos value will indicate the original position.
假设集合中有这两个:
结果是
IEnumerable>
,这意味着每个成员都是string
的集合,并且还具有一个 int 键。请注意,结果可能未排序,因此 1 的组可能排在第一位。如果您不希望这样做,请将orderby
添加到查询末尾。Assuming you have the two in a collection:
The result is
IEnumerable<IGrouping<int, string>>
, which means each member is a collection ofstring
s that also has anint
key. Note that the result may not be sorted, so the group for 1 may come first. If you don't want that, addorderby
to the end of the query.