[C#]Dictionary(連想配列)を連結して1つの文字列に変換するには?

C#

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

Dictionary(連想配列)を連結して1つの文字列に変換する方法を紹介します。

スポンサーリンク

方法

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

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つの文字列を返します。

Select()のラムダ式では、引数でDictionaryの要素を取得します。

使用例

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);

コメント

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