我使用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>
,有两个属性(Key
和Value
)
另一个(较慢的)解决方案:
IEnumerable<long> myvalues = dict.Keys.Where(x => x == "A" || x == "B")
.Select(x => dict[x]);
它更慢,因为在过滤后,您会在字典中查找找到的Key
。