Словарь пары ключ-значение вопроса - PullRequest
0 голосов
/ 18 августа 2010

у меня есть словарная пара я делаю объект из словаря «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 ]

4 голосов
/ 18 августа 2010

Если я правильно понимаю ваш вопрос, вы хотите узнать, существует ли ключ в словаре, а затем получить значение.

Возможно, самый простой способ - использовать 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
}
3 голосов
/ 18 августа 2010
//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";
0 голосов
/ 18 августа 2010

Только для вашей информации, вы также можете инициализировать ваш словарь, используя следующий подход:

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

Это называется "инициализатор коллекции"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...