c# - 在 LINQ 中选择 List of KeyValuePairs 中的所有键

标签 c# linq distinct-values

我有一个键值对列表列表,我想将其转换为标准格式并进一步将其导出为表格。为此,我需要获取列表中存在的所有唯一 key 。如何使用 LINQ 获取唯一键?

我的源数据具有这种形式:

var sourceData = new List<List<KeyValuePair<string, string>>>();

...

var uniqueKeyNames = sourceData.SomeLinqCodeHere....

非常感谢

最佳答案

听起来您只需要 SelectManySelectDistinct 的组合:

var allKeys = sourceData.SelectMany(list => list) // Flatten to a sequence of KVP
                        .Select(kvp => kvp.Key)   // Select just the keys
                        .Distinct();

请注意,如果您想多次遍历 allKeys,您可能想要具体化查询,例如通过在末尾调用 ToList:

var allKeys = sourceData.SelectMany(list => list) // Flatten to a sequence of KVP
                        .Select(kvp => kvp.Key)   // Select just the keys
                        .Distinct()
                        .ToList();

关于c# - 在 LINQ 中选择 List of KeyValuePairs 中的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18514098/

相关文章:

java - 在 Hadoop 中选择不同的记录并使用组合器

python - 在 Pandas 数据框中获取不同值的最有效方法是什么?

javascript - 返回 Mongodb 查询 Distinct

c# - 使用 XElement 在 XHTML 中包含 js 文件

c# - 'var' 的目的是什么?

c# - WP7 - 解析 XML 数据

c# - 如何重新包装 Linq 表达式树

c# - OpenXML SDK - 将 C# 转换为 C++/CLI

c# - 如何使用 HttpWebRequest 转义 POST 中的 URL 编码数据

c# - 在 ASP.NET MVC 站点中使用 Lucene.Net 时出现目录锁定错误