2016-06-08 182 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