从字典中提取信息

时间:2014-10-15 17:27:49

标签: c# linq dictionary

我有一个词典,其中键是产品代码,每个键下面的值是产品的一些细节(例如重量,颜色,价格等)。 现在让我们说代码循环遍历我拥有的产品代码列表。 我想检查代码(在下面的代码中称为 myKey )是否在我的字典中,在这种情况下我还想提取一些属性(假设我的情况下只是颜色和价格)。我正在尝试以下但没有成功:

var myColour = myDictionary
    .Where(x => myDictionary.Keys.Contains(myKey))
    .Select(x => x.Value.Colour);

var myPrice = myDictionary
    .Where(x => myDictionary.Keys.Contains(myKey))
    .Select(x => x.Value.Price);

我没有任何错误,但我根本看不到结果存储在变量myColor和myPrice中。

我的问题的正确语法是什么?

2 个答案:

答案 0 :(得分:8)

你似乎过于复杂化了。以下应该做你想做的事。

if (myDictionary.ContainsKey(myKey))
{
    var theValue = myDictionary[myKey].SomeProperty
}

答案 1 :(得分:7)

MyValueType myValue;
if(myDictionary.TryGetValue(myKey, out myValue)){
    Console.Out.WriteLine(myValue.Colour);
    Console.Out.WriteLine(myValue.Price);
}