对于某些值,从Dictionary中获取List <>的键

Jam*_*rgy 4 c# linq

虽然类似于这个问题给了我LINQ的部分问题,但我遗漏了一些似乎必须明显的东西,以避免循环字典的最后一步.

我有一个字典,我想得到一个键的列表,只有值为true的项目.现在我这样做:

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);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以直接去一个List<long>没有做那个循环?

Mar*_*kXA 6

要在一个声明中完成:

var values = ItemChecklist.Where(item => item.Value).Select(item => item.Key).ToList();
Run Code Online (Sandbox Code Playgroud)