C# 是否从嵌套集合中收集不同的键值列表?

C# 是否从嵌套集合中收集不同的键值列表?,c#,linq,C#,Linq,这看起来很简单,但今天早上我的大脑工作不太好,我似乎找不到一个好的搜索表达式来寻找答案 我有一个IList,我想得到一个IList,其中包含字典对象集合中唯一键名的独特列表。做这件事的快捷而优雅的方式是什么?我相信答案很简单,我就是想不起来 var allKeys = from dict in list from key in dict.Keys select key; var distinctKeys = allKeys.Distinc

这看起来很简单,但今天早上我的大脑工作不太好,我似乎找不到一个好的搜索表达式来寻找答案

我有一个
IList
,我想得到一个
IList
,其中包含字典对象集合中唯一键名的独特列表。做这件事的快捷而优雅的方式是什么?我相信答案很简单,我就是想不起来

var allKeys = from dict in list
              from key in dict.Keys
              select key;

var distinctKeys = allKeys.Distinct().ToList();
或者,如果您更喜欢lambda语法:

var distinctKeys = list.SelectMany(dict => dict.Keys).Distinct().ToList();
哈,我知道这对我来说是一个“无聊”的时刻。谢谢
list.SelectMany(d => d.Keys).Distinct()