C# - 组合集合问题
如果我有一个 IDictionary
,是否可以接收一个 IEnumerable
,它
将包含每个 KeyValuePair
分解为两个相继插入的 (int, int)
条目?
小例子:
Dictionary:
5 - 25
6 - 36
7 - 49
Wanted Enumerable:
5, 25, 6, 36, 7, 49
另外,我想把它放在一个超级漂亮的声明中,但我想不出一个合适的声明:)
更新:
LINQ
是否允许在每个 .Select
语句中插入多个元素,共享以下想法:
xyz.Select(t => (t, null))
以便生成的 Enumerable
将包含紧随其后的是 t
和 null
吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用
SelectMany(IEnumerable, Func)
(加上重载)。这是一个示例根据评论,这只是实现您所要求的目标的一种方法。
You could use
SelectMany<TSource, TResult>(IEnumerable<TSource>, Func<TSource, IEnumerable<TResult>>)
(plus overloads). Here's an exampleAs per the comments, this is just one way of achieving what you have asked.
您可以创建一个方法,以您想要的方式将字典分解为 IEnumerable。
输出:
You could create a method that will decompose your dictionary into an IEnumerable in the way you want.
Output:
我之所以这么想,是因为
我相信 .NET Framework 4.0 Enumerable.Zip 已经接近[1],
所以我找到了时间来实现这个MixSequences 方法,请注意,我只是为了好玩使其成为n元,因此它将组合任意数量的序列(不仅仅是2个)。
干杯
[1]更新请参阅此处、此处或此处了解背景。
I'd think of this as
I believe in .NET framework 4.0 Enumerable.Zip comes close[1]
So I've found time to implement thisMixSequences method, Note how just for fun I made it n-ary, so it will combine any number of sequences (not just 2).
Cheers
[1] Update See here, here or here for background.
尝试使用以下方法:
您可以将这个列表合二为一。
try to use following methods:
you can join this lists in one.
您可以使用 LINQ 创建对象/集合/您拥有的东西。假设您想将两个非常不同/不相关(或几乎不相关)的项目合并为一个(伪代码如下):
You can create a object/collection/what have you using LINQ. Say you want to merge two very different/unrelated (or barely related) items into one (pseudo code follows):