【C#】string.Joinで配列やListの要素を区切り文字で連結する方法

目次

コレクションから単一の文字列へ

C#でプログラミングを行う際、string.Splitで文字列を配列に分割する操作とは逆に、配列やList<T>(リスト)など、複数の要素を持つコレクションを、指定した区切り文字(デリミタ)で連結し、一つのstring(文字列)にまとめたいという場面がよくあります。

例えば、List<string>に格納された複数のIDをカンマ区切り("id1,id2,id3")の文字列に変換してログに出力したり、CSVファイルの1行を作成したりする場合です。

foreachループとStringBuilderを使って手動で連結することも可能ですが、C#にはこの操作を1行で、かつ非常に効率的に行うためのstring.Join静的メソッドが用意されています。


string.Join メソッドの基本

string.Joinメソッドは、指定されたseparator(区切り文字)を間に挟みながら、コレクション(values)のすべての要素を連結します。

基本構文: string.Join(string separator, IEnumerable<T> values)

  • separator: 要素と要素の間に挿入する文字列(例: ", ", "-", "\n" など)。
  • values: 連結したいコレクション。string[](文字列配列)だけでなく、List<string>int[]List<double>など、IEnumerable<T>を実装するほぼすべてのコレクションを指定できます。

コード例1: string配列の連結 (カンマ区切り)

string[](文字列の配列)に格納された複数のタグを、", "(カンマとスペース)で連結して、読みやすいリスト文字列を作成する例です。

using System;
using System.Collections.Generic;

public class StringJoinExample
{
    public static void Main()
    {
        string[] tags = { "C#", "LINQ", ".NET", "Programming" };

        // 区切り文字に ", " を指定
        string result = string.Join(", ", tags);

        Console.WriteLine("--- 文字列配列の連結 ---");
        Console.WriteLine(result);
    }
}

出力結果:

--- 文字列配列の連結 ---
C#, LINQ, .NET, Programming

コード例2: int(数値)コレクションの連結

string.Joinの強力な点は、string以外のコレクションも直接扱えることです。

int[]List<int>を渡した場合、string.Joinは内部で各数値要素のToString()メソッドを呼び出し、それらを連結します。

int[] とハイフン区切り

int型の配列(例: [10, 20, 30])を、ハイフン(-)で連結してシリアルコードのような文字列を作成する例です。

using System;
using System.Collections.Generic;

public class NumberJoinExample
{
    public static void Main()
    {
        // 整数 (int) の配列
        int[] versionParts = { 1, 4, 10, 2 };

        // 区切り文字に "-" を指定
        string versionString = string.Join("-", versionParts);

        Console.WriteLine("--- 数値配列の連結 ---");
        Console.WriteLine($"バージョン: {versionString}");

        // List<T> の場合
        var scores = new List<int> { 100, 85, 92 };
        string scoreReport = string.Join(" / ", scores);
        
        Console.WriteLine($"スコア一覧: {scoreReport}");
    }
}

出力結果:

--- 数値配列の連結 ---
バージョン: 1-4-10-2
スコア一覧: 100 / 85 / 92

補足:区切り文字の指定

string.Joinの第1引数(separator)はstring型であるため、","のような単一の文字だけでなく、"--->""\r\n"(改行)といった複数の文字からなる文字列も区切り文字として指定できます。

string[] steps = { "Step 1", "Step 2", "Step 3" };

// 区切り文字に改行 (Environment.NewLine) を使用
string processLog = string.Join(Environment.NewLine, steps);

Console.WriteLine(processLog);

出力結果:

Step 1
Step 2
Step 3

まとめ

string.Joinメソッドは、C#でコレクションの要素を一つの文字列に連結するための、最も標準的で効率的な方法です。

  • foreachループやStringBuilderを手動で管理する手間を省き、コードを1行で簡潔に記述できます。
  • string型だけでなく、int型などの数値型コレクションにも直接使用できます。
  • CSVデータの生成、ログ出力、レポート作成など、さまざまな場面で活用できます。

副業から独立まで「稼げる」Webスキルを習得する(PR)

ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。

「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。

このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。

講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。

副業に特化した強み

  • 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
  • AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
  • 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。

受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。

受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。

ブログで稼ぎたいなら「メイカラ」

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次