1

辞書と検索キー配列を表すコードがあります。

Dictionary<string, string> items = new Dictionary<string, string>()
                                   {
                                     {"1","Blue"},
                                     {"2","Green"},
                                     {"3","White"}
                                    };

string[] keys = new[] { "1", "2", "3", "4" };

ディクショナリに存在しないキーを渡すと、実行時エラーを安全に回避するにはどうすればよいですか?

4

2 に答える 2

2

ディクショナリに存在しないキーを渡すと、実行時エラーを安全に回避するにはどうすればよいですか?

現在どのようにしようとしているのかを示していませんが、次を使用できますDictionary<,>.TryGetValue

foreach (string candidate in keys)
{
    string value;
    if (items.TryGetValue(candidate, out value))
    {
        Console.WriteLine("Key {0} had value {1}", candidate, value);
    }
    else
    {
        Console.WriteLine("No value for key {0}", candidate);
    }
}
于 2013-06-29T17:13:08.847 に答える
2

Use either ContainsKey or TryGetValue to check the existence of a key.

string val = string.Empty;
 foreach (var ky in keys)
 {

                if (items.TryGetValue(ky, out val))
                {
                    Console.WriteLine(val);
                }

     }

or

foreach (var ky in keys)
 {

   if (items.ContainsKey(ky))
    {
      Console.WriteLine(items[ky]);
    }
  }

Though TryGetValue is faster than ContainsKey use it when you want to pull the value from dictionary.if you want to check the existence of key use ContainsKey.

于 2013-06-29T17:16:23.543 に答える