基于键的筛选获取键值对



我使用myDictionary.Keys.Where来获取一个序列,但它只返回键(我的谓词对键施加条件)。我还需要获取关联的值,但我不确定如何轻松做到这一点,我确定我错过了一些基本功能。

var dict = new Dictionary<string, long>();

像这样:

IEnumerable<long> myvalues = dict.Where(x => x.Key == "A" || x.Key == "B")
                                 .Select(x => x.Value);

这将返回您想要的Value

IEnumerable<KeyValuePair<string, long>> myvalues = dict.Where(x => x.Key == "A" || x.Key == "B");

最后一个将返回完整的KeyValuePair<string, long>,有两个属性(KeyValue

另一个(较慢的)解决方案:

IEnumerable<long> myvalues = dict.Keys.Where(x => x == "A" || x == "B")
                                      .Select(x => dict[x]);

它更慢,因为在过滤后,您会在字典中查找找到的Key

最新更新