在 { key, value } 的元组上选择Many - 获取结果中的键?

问题描述 投票:0回答:3

我有一个

{ string Key, IEnumerable<string> Values }
项目列表,并希望将其转换为
{ string Key, string Value }
项目列表,以便新列表包含每个
n
Key
项目。

我想使用 LINQ 并且有使用的想法

SelectMany
:

list.SelectMany(item => item.Values)

但是,正如你所看到的,我在这种转变中失去了

Key
。有什么窍门呢?我想这应该很容易,我只是只见树木不见森林......

c# linq
3个回答
5
投票

我也遇到过这种大脑冻结的情况。从评论中添加@PetSerAl 的答案:

list.SelectMany(item => item.Values.DefaultIfEmpty(), (item, value) => Tuple.Create(item.Key, value))

0
投票

试试这个:

list.SelectMany(item => item.Values, (item, value) => new { item.Key ,值})


-2
投票

不是编译的代码,但这可能会回答你的问题

var finalList=list.SelectMany(item => item).Select(final => new{KeyName=item.Key,Coll=item.Values}).ToList();

© www.soinside.com 2019 - 2024. All rights reserved.