检查字典中特定键的值是什么

时间:2014-10-07 10:27:47

标签: c# if-statement dictionary

我是字典的新手,所以我有这个基本问题。

我有这样的字典:

Dictionary<string, string> usersLastStamp = checking.checkLastStamp();

如何执行if语句来检查特定键的值是否为某些内容?

像这样:

if(usersLastStamp.the_value_of_key("theKey") == "someValue")
{
    //Do something
}

我已经看了一下TryGetValue,但我不太确定如何在if语句中直接使用它。

4 个答案:

答案 0 :(得分:6)

如果字典中没有键(如指定here),

usersLastStamp["theKey"]将抛出异常。您可以改为使用TryGetValue并将其与short circuit evaluation

结合使用
string value = null;
if (usersLastStamp.TryGetValue("theKey", out value) && (value == "someValue"))
{
}

答案 1 :(得分:1)

你可以尝试

if(usersLastStamp["theKey"] != null && usersLastStamp["theKey"] == "SomeValue")
{
      // Your cdoe writes here
}

答案 2 :(得分:1)

人们已经回答了TryGetValue方法,但作为替代选择:如果它是一个选项,可以也考虑使用StringDictionary代替Dictionary<string,string> - 如果该键没有值,则返回null,因此您可以使用:

if(usersLastStamp["theKey"] == "someValue")

没有任何错误的风险。

答案 3 :(得分:0)

您可以使用

string someVal = "";

if (myDict.ContainsKey(someKey))
 someVal = myDict[someKey];

string someVal = "";
if (myDict.TryGetValue(somekey, out someVal))

然后你的if:

if (someVal == "someValue")

TryGetValue接受一个out参数,返回一个bool,重新生成true并在字典中存在该键时更新该参数,如果该字典中的键不存在则返回false。或者你必须检查字典中是否存在密钥,只有当密钥存在时才从中获取值。

相关问题