我有一个字典对 我创建了一个字典“paramList”的对象,现在我已经为该对象添加了键和值对,现在我想知道是否在某个其他页面上我在某个方法中传递了对象paramList并且在该页面上我知道了键和我想访问它的相应值,那我该怎么做呢 我有像这样的对象
Dictionary<string, object> paramList = new Dictionary<string, object>();
paramList.Add("@courseId", course_id);
paramList.Add("@passoutYear", passoutYear);
paramList.Add("@currentBacklog", currentBacklog);
paramList.Add("@sex", sex);
现在,如果我知道密钥@key
并想知道它的对应值我也有对象
答案 0 :(得分:4)
如果我理解你的问题,你想知道字典中是否存在密钥,然后检索该值。
也许最简单的方法是使用TryGetValue
string key = "@key";
object value = null;
if (paramList.TryGetValue(key, out value))
{
// the key exists and the related value is now in value
}
else
{
// the key does not exist
}
答案 1 :(得分:3)
//First check if the key exists in the dictionary and then get the item.
if(paramList.ContainsKey("some-key"))
{
object value = paramList["some-key"];
}
修改强> 或者可能使用扩展方法。 (不要进行双重查找)。
static class DictionaryExtensions
{
public static TValue GetValueOrDefault<TKey,TValue>(this IDictionary<TKey,TValue> dict, TKey key)
{
TValue value;
if(dict.TryGetValue(key, out value))
return value;
return default(TValue);
}
}
//Example usage
paramList.GetValueOrDefault("mykey") ?? "mykey didn't exist";
答案 2 :(得分:0)
仅为了您的信息,您还可以使用下一种方法初始化您的词典:
Dictionary<string, object> paramList = new Dictionary<string, object>
{
{ "@courseId", course_id },
{ "@passoutYear", passoutYear },
{ "@currentBacklog", currentBacklog },
{ "@sex", sex },
};