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

C#

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

Dictionary(連想配列)の値(Value)を重複なしで連結して、1つの文字列にする方法を紹介します。

スポンサーリンク

方法

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

Dictionary(連想配列)の値(value)を重複なしで連結して1つの文字列に変換するには、String.Join()とDistinct()を使います。

まず、System.Linqを導入します。

using System.Linq;

String.Join()を呼び出します。

そして、String.Joinの第1引数に区切り文字、第2引数にDictionaryのValuesプロパティのDistinct()を指定します。

string values = String.Join("区切り文字", myDict.Values.Distinct());

上記のString.Join()は、Dictionaryの値を重複なしで結合した文字列を返します。

また、結合した文字列では、1つ1つの値がString.Join()の第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 },
	        { "first", 1 },
	        { "four", 4 },
	        { "five", 5 },
	        { "壱", 1 },
	    };
	    
	    string values = String.Join(",", numbers.Values.Distinct());
	    
	    Console.WriteLine(values); //1,2,3,4,5
	}
}

コメント

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