私が好むのは次のようなものです:
string[] strArray = {"Hi", "how", "are", "you"};
string strNew = strArray.Delimit(chDelimiter);
ただし、そのような機能はありません。私はMSDNを調べましたが、同じアクションを実行する関数として私には何も見えませんでした。 StringBuilderを見ましたが、何も目立ちませんでした。配列を区切り文字列にするための、それほど複雑ではない1つのライナーを知っている人はいますか。皆さんの助けに感謝します。
更新:うわー、笑、私の悪い。私は配列自体の.Joinを見続けました、そしてそれは私から地獄を悩ませていました。 String.Joinも見ていません。みんなありがとう。それが私に受け入れることができたら、私はそうします。ヘルプを正確に。
配列の場合、次を使用できます。
string.Join(", ", strArray);
個人的には、すべてのタイプの列挙可能なコレクションに適用できる拡張メソッドを使用します。
public static string Flatten(this IEnumerable elems, string separator)
{
if (elems == null)
{
return null;
}
StringBuilder sb = new StringBuilder();
foreach (object elem in elems)
{
if (sb.Length > 0)
{
sb.Append(separator);
}
sb.Append(elem);
}
return sb.ToString();
}
...私がそのように使用するもの:
strArray.Flatten(", ");
静的 String.Join メソッドを使用できます:
String strNew = String.Join(chDelimiter, strArray);
編集:コメントへの応答:コメントに基づいて、複数の配列を取得し、それらを連結して、結果の配列全体を結合できます。これは、IEnumerable拡張メソッドConcat
を使用して実行できます。次に例を示します。
//define my two arrays...
string[] strArray = { "Hi", "how", "are", "you" };
string[] strArray2 = { "Hola", "como", "esta", "usted" };
//Concatenate the two arrays together (forming a third array) and then call join on it...
string strNew = String.Join(",", strArray.Concat(strArray2));
お役に立てれば!
String.Join() を見てください。
サンプルは次のようになっている必要があります。
string delimiter = ","
string[] strArray = { "Hi", "how", "are", "you" };
string strNew = String.Join(delimiter, strArray);
String.Join を使用します
string[] strArray = {"Hi", "how", "are", "you"};
string strNew = String.Join("," strArray);
この場合、String.Join()がおそらく最も簡単な方法ですが、LINQも同様に使用できます。
var comSeparatedStrings = strings.Aggregate((acc, item) => acc + ", " + item);