字典键值对问题

时间:2010-08-18 06:09:37

标签: c# dictionary

我有一个字典对 我创建了一个字典“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并想知道它的对应值我也有对象

3 个答案:

答案 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 },
};

它被称为"collection initializer"