[C#]Dictionary(連想配列)のValue(値)を配列に変換するには?

C#

どうも、ちょげ(@chogetarou)です。

Dictionary(連想配列)のValue(値)を配列に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

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()を使う方法

コメント

タイトルとURLをコピーしました