虽然类似于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/