繁体   English   中英

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

[英]Get keys as List<> from Dictionary for certain values

虽然类似于这个问题给了我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);
}

有没有办法可以直接进入List<long>而不进行循环?

要在一个声明中执行此操作:

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

尝试使用Enumerable.Select

List<long> result = ItemChecklist.Where(kvp => kvp.Value)
                                 .Select(kvp => kvp.Key)
                                 .ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM