どうも、ちょげ(@chogetarou)です。
foreachでDictionaryをループする方法を紹介します。
方法

foreachでDictionary(連想配列)をループする方法は、3つあります。
キーと値のペア
1つ目は、キーと値のペアでループする方法です。
まず、ループ対象にDictionaryを指定したforeachのループを記述します。
そして、foreachの{}内にループ処理を記述します。
ループ処理内では、foreachの変数のKeyプロパティでDictionaryの要素のキー、変数のValueプロパティでDictionaryの要素の値を取得します。
foreach (var item in numbers)
{
//item.Keyで要素のキーを取得
//item.Valueで要素の値を取得
}
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Dictionary<string, int> numbers = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 },
{ "four", 4 },
{ "five", 5 },
};
foreach (var item in numbers)
{
Console.WriteLine("キー「{0}」の 値は「{1}」", item.Key, item.Value);
}
}
}

キーのみ
2つ目は、キーのみでループする方法です。
まず、ループ対象にDictionaryのKeysプロパティを指定したforeachを記述します。
そして、foreachの{}内にループ処理を記述します。
{}内では、foreachの変数でDictionaryのキーを取得できます。
foreach (var key in dict.Keys)
{
//ループ処理
//keyでDictionaryのキーを取得
}
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Dictionary<string, int> numbers = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 },
{ "four", 4 },
{ "five", 5 },
};
foreach (var key in numbers.Keys)
{
Console.WriteLine(key);
}
}
}

値のみ
3つ目は、値のみをループする方法です。
まず、ループ対象にDictionaryのValuesプロパティを指定したforeachを記述します。
そして、foreachの{}内にループ処理を記述します。
{}内では、foreachの変数でDictionaryの値を取得できます。
foreach (var value in dict.Values)
{
//ループ処理
//valueでDictionaryの値を取得
}
使用例
using System;
using System.Collections.Generic;
public class Example
{
public static void Main()
{
Dictionary<string, int> numbers = new Dictionary<string, int>()
{
{ "one", 1 },
{ "two", 2 },
{ "three", 3 },
{ "four", 4 },
{ "five", 5 },
};
foreach (var value in numbers.Values)
{
Console.WriteLine(value);
}
}
}

まとめ
foreachでDictionary(連想配列)をループする方法は、次の3つです。
- キーと値のペアをループする方法
- キーのみをループする方法
- 値のみをループする方法
コメント