どうも、ちょげ(@chogetarou)です。
Dictionary(連想配列)のValue(値)を配列に変換する方法を紹介します。
方法

Dictionary(連想配列)のValue(値)を配列に変換する方法は、2つあります。
CopyTo()
1つは、CopyTo()を使う方法です。
まず、Dictionaryの値のための配列を用意します。
配列の長さには、DictionaryのCountプロパティを指定します。
T[] values = new T[dict.Count];
次に、DictionaryのValuesプロパティにアクセスします。
ValuesプロパティからCopyTo()を呼び出します。
そして、CopyTo()の第1引数に用意した配列、第2引数に「0」を指定します。
dict.Values.CopyTo(values, 0);
上記のValues.CopyTo()は、用意した配列に、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 },
};
int[] values = new int[numbers.Count];
numbers.Values.CopyTo(values, 0);
foreach (var value in values)
{
Console.WriteLine(value);
}
}
}

System.LinqのToArray()
もう1つは、System.LinqのToArray()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、DictionaryのValuesプロパティにアクセスします。
そして、ValuesプロパティからToArray()を呼び出します。
T[] values = dict.Values.ToArray();
上記のToArray()は、Dictionary(連想配列)のValue(値)の配列を返します。
使用例
using System;
using System.Linq;
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 },
};
int[] values = numbers.Values.ToArray();
foreach (var value in values)
{
Console.WriteLine(value);
}
}
}

まとめ
Dictionary(連想配列)の値を配列に変換する方法は、次の2つです。
- CopyTo()を使う方法
- System.Linqの ToArray()を使う方法
コメント