如何从List中的KeyValuePair检索值?

时间:2014-08-14 01:13:00

标签: c# list contain keyvaluepair

我有以下列表,我需要在其上运行Contains()或类似的方法来检索与特定键关联的值。我该怎么做?我到处搜索并试了很多东西,但我似乎无法弄明白。

List<KeyValuePair<string, int>> shopInventory = new List<KeyValuePair<string, int>>();

我认为这有点像:

shopInventory.Contains((KeyValuePair<string, int>

如果我忽略了包含任何重要信息,我将很乐意提供它。

2 个答案:

答案 0 :(得分:2)

您可以使用LINQ。

return shopInventory.First(c => c.Key == key).Value;

当然,您可能也希望在此基础上进行错误处理。

如果您经常使用它,也可以使用ToDictionary。

答案 1 :(得分:0)

您可以使用Where(...)

shopInventory.Where (kvp => kvp.Key == searchKey).Count() > 0

如果您的至少一对密钥等于searchKey

,则上述表达式将返回true

如果你想对所有与提供的searchKey匹配的对做一些事情,那么你可以让.Count() > 0离开并对表达式的结果做一些事情。