C# 辞書の値を取得する

C#で、辞書の値を取得するサンプルコードを記述してます。「キー」名を指定することで取得できます。指定した「キー」が存在しない場合は、エラーとなります。
環境
- OS windows11 pro 64bit
- Microsoft Visual Studio Community 2022 Version 17.2.6
辞書の値を取得
辞書の値を取得するには、「キー」を使用します。
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict[0] = "aaa";
dict[1] = "bbb";
dict[2] = "ccc";
System.Console.WriteLine(dict[0]); // aaa
System.Console.WriteLine(dict[1]); // bbb
System.Console.WriteLine(dict[2]); // ccc
}
}
}
実行結果

存在しないキーを指定
存在しないキーを指定するとエラーが発生します。
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict[0] = "aaa";
dict[1] = "bbb";
dict[2] = "ccc";
System.Console.WriteLine(dict[3]);
// System.Collections.Generic.KeyNotFoundException: 'The given key '3' was not present in the dictionary.'
}
}
}
存在チェックをすれば、エラーは回避できますが、キーが存在する場合は、二度検索処理が行われることになります。
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict[0] = "aaa";
dict[1] = "bbb";
dict[2] = "ccc";
if (dict.ContainsKey(3))
{
System.Console.WriteLine(dict[3]);
}
}
}
}
この問題は「TryGetValue」を使用することで解決します。
using System;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dict = new Dictionary<int, string>();
dict[0] = "aaa";
dict[1] = "bbb";
dict[2] = "ccc";
var val = "";
if (dict.TryGetValue(3, out val))
{
System.Console.WriteLine(dict[3]);
}
if (dict.TryGetValue(0, out val))
{
System.Console.WriteLine(val); // aaa
}
}
}
}
-
前の記事
mongoDB mongoシェル上でファイルを削除する 2022.12.22
-
次の記事
mac コマンドで拡張子を指定して特定のテキストデータがあるファイルを探す 2022.12.22
コメントを書く