Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 字典键值对问题_C#_Dictionary - Fatal编程技术网

C# 字典键值对问题

C# 字典键值对问题,c#,dictionary,C#,Dictionary,我有一本字典 我创建了一个dictionary paramList对象,现在我向该对象添加了键和值对,现在我想知道是否在另一个页面上,我以某种方法传递了对象paramList,在该页面上,我知道键,我想访问它的对应值,那么我该怎么做呢 我有这样的东西 Dictionary<string, object> paramList = new Dictionary<string, object>(); paramList.Add("@courseId", course_id)

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

如果我正确理解了你的问题,你想知道该键是否存在于字典中,然后检索该值

也许最简单的方法是使用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
}
编辑 或者可以使用扩展方法。不进行双重查找

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";

仅供参考,您还可以使用下一种方法初始化词典:

Dictionary<string, object> paramList = new Dictionary<string, object>
{
    { "@courseId", course_id },
    { "@passoutYear", passoutYear },
    { "@currentBacklog", currentBacklog },
    { "@sex", sex },
};

它叫

我不明白这个问题。请重新措辞此操作可能会执行双字典查找,甚至更短,返回dict.TryGetValuekey,out value?值:默认值;还有一个建议——通常这种方法有一个可选的参数,通过重载或其他方式表示查找失败情况下的默认值,即返回dict.TryGetValuekey,out value?值:默认值??默认值;先生,请看一眼这个…我非常需要摆脱这个问题,我被困在如何从查询中排序电路空参数值。。。
Dictionary<string, object> paramList = new Dictionary<string, object>
{
    { "@courseId", course_id },
    { "@passoutYear", passoutYear },
    { "@currentBacklog", currentBacklog },
    { "@sex", sex },
};