Dictionaryクラスのメソッド
Dictionaryクラスの操作
ここではよく使われるDictionaryクラスのメソッドを紹介します。
Dictionaryクラスについての基本的な事柄はDictionaryクラスを参照してください。
- Add(要素の追加)
- Remove(要素の削除)
- Clear(要素をすべて削除)
- ContainsKey(指定のKeyの存在判定)
- ContainsValue(指定のValueの存在判定)
- TryGetValue(指定のKeyのValueを取得)
Add(要素の追加)
Dictionaryに要素を追加するにはAddメソッドを使用します。
//空のDictionaryを作成
var dct = new Dictionary<string, int>();
//要素を追加
dct.Add("aaa", 5);
dct.Add("bbb", 7);
dct.Add("ccc", 9);
foreach (var kvp in dct)
Console.WriteLine("{0}: {1}", kvp.Key, kvp.Value);
aaa: 5 bbb: 7 ccc: 9
第一引数にはKeyとなる値、第二引数にはValueとなる値を指定します。
それぞれの値のデータ型は追加するDictionaryクラスのデータ型に合わせます。
Addメソッドは「要素の追加」の動作しかできず、既存の値を上書きすることはできません。
すでに存在するKeyを指定するとエラーになります。
var dct = new Dictionary<string, int>();
dct.Add("aaa", 5);
//エラー
dct.Add("aaa", 10);
//これはOK
dct["aaa"] = 10;
Remove(要素の削除)
要素の削除にはRemoveメソッドを使用します。
var dct = new Dictionary<string, int>() {
{ "aaa", 5 },
{ "bbb", 7 },
{ "ccc", 9 },
};
//要素を削除
bool bo1 = dct.Remove("bbb"); //true
bool bo2 = dct.Remove("zzz"); //false
foreach (var kvp in dct)
Console.WriteLine("{0}: {1}", kvp.Key, kvp.Value);
aaa: 5 ccc: 9
Removeメソッドは削除に成功した場合は真を、要素が見つからなかった場合は偽を返します。
Clear(要素をすべて削除)
Dictionaryクラスの要素をすべて削除するにはClearメソッドを使用します。
var dct = new Dictionary<string, int>() {
{ "aaa", 5 },
{ "bbb", 7 },
{ "ccc", 9 },
};
//要素をすべて削除
dct.Clear();
Console.WriteLine(dct.Count); //0
ContainsKey(指定のKeyの存在判定)
Dictionary中に指定のKeyを持つ要素が存在するかを判定するにはContainsKeyメソッドを使用します。
var dct = new Dictionary<string, int>() {
{ "aaa", 5 },
{ "bbb", 7 },
{ "ccc", 9 },
};
bool bo1 = dct.ContainsKey("aaa"); //true
bool bo2 = dct.ContainsKey("zzz"); //false
ContainsValue(指定のValueの存在判定)
Dictionary中に指定のValueを持つ要素が存在するかを判定するにはContainsValueメソッドを使用します。
var dct = new Dictionary<string, int>() {
{ "aaa", 5 },
{ "bbb", 7 },
{ "ccc", 9 },
};
bool bo1 = dct.ContainsValue(5); //true
bool bo2 = dct.ContainsValue(999); //false
TryGetValue(指定のKeyのValueを取得)
Dictionary内に指定のKeyを持つ要素が存在する場合にその値を得るにはTryGetValueメソッドを使用します。
var dct = new Dictionary<string, int>() {
{ "aaa", 5 },
{ "bbb", 7 },
{ "ccc", 9 },
};
int tryGetValue1;
int tryGetValue2;
bool bo1 = dct.TryGetValue("aaa", out tryGetValue1); //true
bool bo2 = dct.TryGetValue("zzz", out tryGetValue2); //false
Console.WriteLine(tryGetValue1);
Console.WriteLine(tryGetValue2);
5 0
TryGetValueメソッドの第二引数はoutキーワードと共に指定します。
Dictionary内に第一引数で指定したKeyが存在する場合は第二引数に値が格納されます。
Keyが存在しない場合は規定値が格納されます。
戻り値はKeyが存在する場合は真、存在しない場合は偽を返します。