2016-06-08 154 views
-3

我有一個C#詞典:C#LINQ查詢字典

Dictionary<int, ItemsClass> Items 

ItemsClass有一個名爲「數字」

我想寫一個LINQ查詢,返回我的字典鍵數爲ItemsClass成員有一個'數字'匹配一個特定的值,例如X。

我該怎麼做?

回答

2

要獲得所有符合條件的物品,你可以使用:

Items.Where(p => p.Value.Number == x).Select(p => p.Key); 

爲了得到你總是希望它找到一個唯一的關鍵是,只有一個:

Items.Where(p => p.Value.Number == x).Select(p => p.Key).Single(); 

爲了得到第一個匹配項目,如果有多個項目:

Items.Where(p => p.Value.Number == x).Select(p => p.Key).First(); 
+1

小修正:從我的閱讀它將'p.Value.Number == x'。也可能值得使用'Single'或'SingleOrDefault',因爲其含義是隻有一個預期的結果而不是多個可能的結果。 – Chris

+1

@Chris - 很好,謝謝。 – Sean