C# 从字典中提取信息

C# 从字典中提取信息,c#,linq,dictionary,C#,Linq,Dictionary,我有一本字典,其中键是产品代码,每个键下面的值是产品的一些细节(例如重量、颜色、价格等)。 现在让我们假设代码循环通过我拥有的产品代码列表。 我想检查代码(在下面的代码中称为myKey)是否在我的字典中,在这种情况下,我还想提取一些属性(比如我的例子中的颜色和价格)。我正在尝试以下方法,但没有成功: var myColour = myDictionary .Where(x => myDictionary.Keys.Contains(myKey)) .Select(x =&g

我有一本字典,其中键是产品代码,每个键下面的值是产品的一些细节(例如重量、颜色、价格等)。 现在让我们假设代码循环通过我拥有的产品代码列表。 我想检查代码(在下面的代码中称为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中的结果


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

你似乎把事情复杂化了。以下内容应该是您想要的

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

感谢您展示此示例,该示例阐明了如何使用.TryGetValue()。这很有帮助。
MyValueType myValue;
if(myDictionary.TryGetValue(myKey, out myValue)){
    Console.Out.WriteLine(myValue.Colour);
    Console.Out.WriteLine(myValue.Price);
}