我使用myDictionary.Keys.Where来获取一个序列,但它只返回键(我的谓词在键上强制条件)。我也需要得到相关的值,我不知道如何轻松地做到这一点,我确信我会错过一些基本的功能..
答案 0 :(得分:2)
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
字典。