どうも、ちょげ(@chogetarou)です。
Dictionary(連想配列)を連結して1つの文字列に変換する方法を紹介します。
方法

Dictionary(連想配列)を連結して1つの文字列に変換する方法は、3つあります。
String.Join() + Select()
1つ目は、String.Join()とSelect()を使う方法です。
まず、System.Linqを導入します。
using System.Linq;
次に、String.Join()を呼び出します。
String.Join()の第1引数に区切り文字、第2引数にDictionaryのSelect()を指定します。
そして、Select()のラムダ式で結合する際の要素を返します。
string items = String.Join("区切り文字", myDict.Select(item => 要素);
上記のString.Join()は、Select()のラムダ式で返した要素を、Dictionary(連想配列)の要素として結合した1つの文字列を返します。
使用例
using System;
using System.Collections.Generic;
using System.Linq;
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 },
};
string keys = String.Join(",", numbers.Select(item => item.Key + ":" + item.Value));
Console.WriteLine(keys); //one:1,two:2,three:3,four:4,five:5
}
}
String.Join() + Keys
2つ目は、String.Join()とKeysを使う方法です。
まず、String.Join()を呼び出します。
そして、String.Joinの第1引数に区切り文字、第2引数にDictionaryのKeysプロパティを指定します。
string keys = String.Join(",", myDict.Keys);
上記のString.Join()は、第2引数のKeysプロパティにアクセスしたDictionaryのキーを結合した文字列を返します。
また、結合した文字列では、1つ1つの値がString.Join()の第1引数に指定した文字で区切られます。
使用例
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 },
};
string keys = String.Join(",", numbers.Keys);
Console.WriteLine(keys); //one,two,three,four,five
}
}
String.Join() + Values
3つ目は、String.Join()とValuesを使う方法です。
まず、String.Join()を呼び出します。
そして、String.Joinの第1引数に区切り文字、第2引数にDictionaryのValuesプロパティを指定します。
string values = String.Join("区切り文字", myDict.Values);
上記のString.Join()は、第2引数のValuesプロパティにアクセスしたDictionaryの値を結合した文字列を返します。
また、結合した文字列では、1つ1つの値がString.Join()の第1引数に指定した区切り文字で区切られます。
使用例
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 },
};
string values = String.Join(",", numbers.Values);
Console.WriteLine(values); //1,2,3,4,5
}
}
まとめ
Dictionary(連想配列)を連結して1つの文字列に変換する方法は、次の3つです。
- String.Join()とSelect()を使う方法
string items = String.Join("区切り文字", myDict.Select(item => 要素);
- String.Join()とKeysを使う方法
string keys = String.Join(",", myDict.Keys);
- String.Join()とValuesを使う方法
string values = String.Join("区切り文字", myDict.Values);
コメント