Yip*_*Yay 2 c# linq collections merge
如果我有一个IDictionary<int, int>,是否有可能收到一个IEnumerable<int>,其中包含每个被KeyValuePair<int, int>拆解成(int, int)一个接一个插入的两个条目?
小例子:
Dictionary:
5 - 25
6 - 36
7 - 49
Wanted Enumerable:
5, 25, 6, 36, 7, 49
Run Code Online (Sandbox Code Playgroud)
另外,我希望在一个非常漂亮的声明中有这个,但我想不出一个合适的:)
更新:
是否LINQ允许插入每一个以上的元素.Select声明,共享的东西的想法:
xyz.Select(t => (t, null))
Run Code Online (Sandbox Code Playgroud)
使得所得Enumerable将同时包含t和null之后呢?
你可以使用SelectMany<TSource, TResult>(IEnumerable<TSource>, Func<TSource, IEnumerable<TResult>>)(加上重载).这是一个例子
var dict = new Dictionary<int, int> {
{ 5, 25 },
{ 6, 36 },
{ 7, 49 }
};
var projection = dict.SelectMany(kv => new[] { kv.Key, kv.Value });
Run Code Online (Sandbox Code Playgroud)
根据评论,这只是实现您所要求的一种方式.
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |