c# - 从 Dictionary 中获取特定值的键作为 List<>

标签 c# linq

虽然类似于this question这为我的部分问题提供了 LINQ,我遗漏了一些似乎必须显而易见的东西,以避免循环遍历字典的最后一步。

我有一个字典,我想获取一个键列表,只包含值为真的项目。现在我正在这样做:

Dictionary<long,bool> ItemChecklist;
...


var selectedValues = ItemChecklist.Where(item => item.Value).ToList();

List<long> values = new List<long>();
foreach (KeyValuePair<long,bool> kvp in selectedValues) {
   values.Add(kvp.Key);
}

有什么方法可以直接转到 List<long>不做那个循环?

最佳答案

在一条语句中完成:

var values = ItemChecklist.Where(item => item.Value).Select(item => item.Key).ToList();

关于c# - 从 Dictionary 中获取特定值的键作为 List<>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480245/

相关文章:

c# - 在 Windows Phone 7 中将图像保存到媒体库

asp.net - 编译查询会缓存吗?

c# - 嵌套 linq - 其中 x == 可枚举

C# ??空合并运算符 LINQ

.net - LinqToSql如何生成存储过程的输出结果

c# - SQL查询结果到数组/列表

c# - 如何找到 ComboBoxItem 的 ParentComboBox?

c# - Entity Framework 以及 Top 和 OrderBy 的糟糕 OData 性能

c# - 解析同一接口(interface)的两个实例

c# - 根据日期时间比较两个文件最多一分钟?