关于c#:在{key,values}的元组上选择多个 – 获取结果中的键?

SelectMany on tuples of { key, values } - obtain key in result?

我有一个{ string Key, IEnumerable Values }项的列表,想把它转换成{ string Key, string Value }项的列表,这样新的列表就包含了每个Key项的n项。

我想用LINQ,想用SelectMany

1
list.SelectMany(item => item.Values)

然而,正如你所看到的,我失去了Key的转换。诀窍是什么?我想这应该很容易,我只是错过了森林的树木…


我也碰到了这个脑冷冻。从评论中添加@petseral的答案:

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

不是编译的代码,但这可以回答您的问题

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