Dictionaryの使い方
- キーと値をセットでリスト管理できるDictionary
- Dictionaryの追加、更新、削除の仕方
- foreachでの参照
Dictionaryの使い方
Dictionaryは、キーと値をセットでリストとして管理できる型です。
キーが重複するとエラーになるため、キーで一意にデータ管理されていることが保証されます。
値には、クラスやオブジェクトも使用できます。
使用する場合は、newが必要です。
下記のように定義します。
using System.Collections.Generic;
・・・
Dictionary<キーの型, 値の型> ディクショナリ名 = new Dictionary<キーの型, 値の型>();
Dictionaryの追加、更新、削除
Dictionaryへの追加はAddを呼び出します。
Dictionary名.Add(キー, 値);
Dictionaryの値には、キーを指定することでアクセスできます。
値を渡すことで更新ができます。
Dictionary名[キー] = 更新する値;
Dictionaryから要素を削除するにはRemoveを呼び出します。
Dictionary名.Remove(キー);
foreachでの参照
foreachで参照する場合は、Dictionary名.Keysに対して行います。
foreach(キーの型 key in ディクショナリ名.Keys)
{
// ディクショナリ名[key]で値参照
}
foreachでの参照は、KeyValuePairを使用する方法もあります。
foreach(KeyValuePair<キーの型, 値の型> kvp in ディクショナリ名 )
{
// kvp.Keyでキーを参照、kvp.Valueで値参照
}
Dictionaryを使用したサンプルプログラム
サンプルプログラムをご紹介します。
次のファイルを同じフォルダに作成してください。
public class Program
{
public static void Main()
{
// Dictionary<キーの型, 値の型>で定義
System.Collections.Generic.Dictionary<string, string> IdNameList = new System.Collections.Generic.Dictionary<string, string>();
// Dictionary名.Add(キー, 値)で追加
IdNameList.Add("ID001", "1つ目");
IdNameList.Add("ID002", "2つ目");
IdNameList.Add("ID003", "3つ目");
// キーがすでに含まれているかはDictionary名.ContainsKey(キー)で確認
if (IdNameList.ContainsKey("ID001"))
{
System.Console.WriteLine("ID001はすでに登録済みです");
}
// Dictionary名[キー]でキーに紐づく値を参照
IdNameList["ID001"] += "更新";
System.Console.WriteLine("ID001の値は「" + IdNameList["ID001"] + "」です");
// foreachで参照する場合は、Dictionary名.Keysをforeachで参照
foreach(string key in IdNameList.Keys)
{
System.Console.WriteLine(key + "=" + IdNameList[key]);
}
// Dictionary名.Remove(キー)で削除
IdNameList.Remove("ID002");
// foreachでの参照は、KeyValuePairを使用する方法も可能
foreach( System.Collections.Generic.KeyValuePair kvp in IdNameList )
{
System.Console.WriteLine("Key=[{0}] Value=[{1}]", kvp.Key, kvp.Value);
}
// キー入力待ち
System.Console.ReadKey();
}
}
C:¥Windows¥Microsoft.NET¥Framework¥v4.0.30319¥csc.exe *.cs
pause
ID001はすでに登録済みです
ID001の値は「1つ目更新」です
ID001=1つ目更新
ID002=2つ目
ID003=3つ目
Key=[ID001] Value=[1つ目更新]
Key=[ID003] Value=[3つ目]
ファイルを作成できたらCompile.batを実行してみましょう。
同じフォルダにProgram.exeが作成されます。
Program.exeを実行して「Program.exe 実行結果」のように表示されたら成功です。