我是字典的新手,所以我有这个基本问题。
我有这样的字典:
Dictionary<string, string> usersLastStamp = checking.checkLastStamp();
如何执行if语句来检查特定键的值是否为某些内容?
像这样:
if(usersLastStamp.the_value_of_key("theKey") == "someValue")
{
//Do something
}
我已经看了一下TryGetValue,但我不太确定如何在if语句中直接使用它。
答案 0 :(得分:6)
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。或者你必须检查字典中是否存在密钥,只有当密钥存在时才从中获取值。