我有一个词典,其中键是产品代码,每个键下面的值是产品的一些细节(例如重量,颜色,价格等)。 现在让我们说代码循环遍历我拥有的产品代码列表。 我想检查代码(在下面的代码中称为 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中。
我的问题的正确语法是什么?
答案 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);
}