2015-06-20 71 views
0

我使用myDictionary.Keys.Where獲得一個序列,但它只返回鍵(我的謂詞強加在鍵上的條件)。我需要得到相關值,以及和我不知道如何輕鬆地做到這一點,我相信,我錯過了一些基本的功能..基於鍵的過濾獲取keyValuePair

回答

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

喜歡的東西:

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

即會回到你想要

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

最後將返回Value小號全KeyValuePair<string, long>,具有兩個屬性(KeyValue

另一(更慢)的解決方案:

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

它是較慢的,因爲過濾可以查找字典用於Key年代後你發現。

+0

謝謝,我用對 – user970696

+0

一個了不起的答案,非常感謝! – user970696