【C#入門】string(文字列)配列の操作(追加、削除、結合、変換、検索)

string(文字列)の配列って使っていますか?string(文字列)の配列は要素を結合して文字列に変換したり、また文字列を区切り文字で分割して配列にするなど様々な操作ができます。

この記事では、string(文字列)の配列について

  • string配列の宣言、初期化
  • string配列の要素の追加
  • string配列の要素の削除
  • という基本的な内容から、

  • string配列の要素の結合
  • string配列の変換
  • string配列の要素の検索
  • string配列の要素のソート
  • など応用的な内容についても解説していきます。今回はstring(文字列)の配列について、使い方をわかりやすく解説します!

    string配列の宣言、初期化

    要素がstring型の配列でも、配列の宣言、初期化の方法は変わりません。

    配列の宣言、初期化については、こちらで詳しく解説していますので、ぜひ参考にしてください。

    【C#入門】配列の宣言・初期化と値を追加する方法(多次元配列も解説)
    更新日 : 2019年6月11日

    ここでは簡単におさらいしておきましょう。

    using System;
     
    namespace Sample
    {
      class Sample
      {
        static void Main()
        {
          string[] src = {"Tokyo", "Osaka", "Nagoya"};
          
          Console.WriteLine("[{0}]", string.Join(", ", src));
          Console.ReadKey();
        }
      }
    }

    実行結果:

    [Tokyo, Osaka, Nagoya]

    string配列の要素の追加

    配列の要素を追加するには、Array.Resizeメソッドを使って配列の要素数を追加します。

    using System;
     
    namespace Sample
    {
      class Sample
      {
        static void Main()
        {
          string[] src = {"Tokyo", "Osaka"};
          Array.Resize(ref src, src.Length + 1);
          src[src.Length - 1] = "Nagoya";
          
          Console.WriteLine("[{0}]", string.Join(", ", src));
          Console.ReadKey();
        }
      }
    }

    実行結果:

    [Tokyo, Osaka, Nagoya]

    配列の要素を追加する方法については、こちらで詳しく解説していますので、ぜひ参考にしてください。

    【C#入門】配列の宣言・初期化と値を追加する方法(多次元配列も解説)
    更新日 : 2019年6月11日

    string配列の要素の削除

    配列の要素の追加については先ほどお伝えした通りです。

    同じように配列の要素の削除ができるかと言えば、そうではありません。要素を削除する場合は一旦Listに変換してListの要素を削除し、そののちに配列に再変換します。

    配列をListに変換する場合はAddRangeメソッドを使います。Listのオブジェクトで要素を削除するには、Removeメソッドを使います。Listを配列に変換する場合はToArrayメソッドを使います。

    サンプルコードで確認しましょう。

    using System;
    using System.Collections.Generic;
     
    namespace Sample
    {
      class Sample
      {
        static void Main()
        {
          string[] src = {"Tokyo", "Osaka", "Nagoya"};
          var list = new List<string>();
          list.AddRange(src);
          
          list.Remove("Osaka");
          
          string[] new_src;
          new_src = list.ToArray();
          
          Console.WriteLine("[{0}]", string.Join(", ", new_src));
          Console.ReadKey();
        }
      }
    }

    実行結果:

    [Tokyo, Nagoya]

    AddRangeメソッドやRemoveメソッドの使い方については、こちらで詳しく解説しています。

    ぜひ参考にしてください。

    【C#入門】Add、RemoveでListの要素を追加、削除する方法
    更新日 : 2019年5月22日

    string配列の要素の結合

    配列の要素の結合には大きく分けて2種類あります。

    複数の配列の結合配列要素の結合です。配列の要素が文字列の場合は配列要素を結合することで、文字列を結合することができます。

    サンプルコードで確認しましょう。

    using System;
    using System.Linq;
     
    namespace ArrayCopy
    {
      class ArrayCopy
      {
        static void Main()
        {
          char[] src = {'a', 'b', 'c'};
          
          Console.WriteLine("{0}", string.Join("/", src));
          Console.ReadKey();
        }
      }
    }

    実行結果:

    a/b/c

    複数の配列の結合や配列要素の結合については、こちらで詳しく解説しています。

    ぜひ参考にしてください。

    【C#入門】配列を結合する方法(文字列要素の連結、処理速度も解説)
    更新日 : 2018年11月27日

    string配列の変換

    要素がstring型の配列は文字列と変換したり、Listと変換することがあります。

    文字列との変換

    配列から文字列への変換、文字列から配列への変換についてみていきましょう。

    配列から文字列への変換

    要素がstring型の配列を結合して、文字列へ変換する方法については先ほどstring.Joinメソッドを使う方法を説明しました。

    そちらを参考にしてください。

    文字列を区切り文字で配列に変換

    文字列を区切り文字で配列に変換するには、Splitメソッドを使います。文字列中に含まれるスペースで文字列を分割する方法についてみていきましょう。

    using System;
     
    namespace Sample
    {
      class Sample
      {
        static void Main()
        {
          string str = "侍 エンジニア 塾";
          
          string[] arr =  str.Split(' ');
          Console.WriteLine("{0}", string.Join(", ", arr));
          
          Console.ReadKey();
        }
      }
    }

    実行結果:

    侍, エンジニア, 塾

    Splitメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

    【C#入門】String.Splitで文字列を分割(複数文字、文字数でも分割)
    更新日 : 2019年4月23日

    Listとの変換

    配列からListへの変換、Listから配列への変換については先ほど要素を削除する方法で説明しています。

    そちらを参考にしてください。

    string配列の要素の検索

    配列の要素を検索するには、IndexOfメソッドやContainsメソッドを使います。

    IndexOfメソッドを使うと要素の位置を取得することができます。Containsメソッドを使うと要素が含まれているかどうか確認することができます。

    ここではIndexOfの使い方をサンプルコードで確認しましょう。

    using System;
     
    namespace Sample
    {
      class Sample
      {
        static void Main()
        {
          string[] src = {"Tokyo", "Osaka", "Nagoya"};
          string item = "Osaka";
          
          int num = Array.IndexOf(src, item) + 1;
          
          if(num > 0) {
            Console.WriteLine("{0}は{1}番目にあります", item, num);  
          } else {
            Console.WriteLine("{0}は見つかりませんでした", item);
          }
          
          Console.ReadKey();
        }
      }
    }

    実行結果:

    Osakaは2番目にあります

    IndexOfメソッドやContainsメソッドの使い方については、こちらで詳しく解説しています。

    ぜひ参考にしてください。

    【C#入門】IndexOfで文字列やList、配列を検索する方法
    更新日 : 2019年5月7日
    【C#入門】Containsで値が含まれるか調べる方法(文字列/配列/List)
    更新日 : 2019年4月4日

    string配列の要素のソート

    配列の要素をソートするにはArray.Sortメソッドを使います。

    using System;
     
    namespace Sample
    {
      class Sample
      {
        static void Main()
        {
          string[] src = {"Tokyo", "Osaka", "Nagoya"};
          
          Array.Sort(src);
          
          Console.WriteLine("[{0}]", string.Join(", ", src));
          Console.ReadKey();
        }
      }
    }

    実行結果:

    [Nagoya, Osaka, Tokyo]

    Array.Sortメソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

    【C#入門】配列、Listをソートする方法(降順、カスタマイズも解説)
    更新日 : 2019年4月25日

    まとめ

    ここでは、string(文字列)の配列の操作について説明しました。

    操作は、要素の追加や削除、結合や変換、検索やソートなど様々なことができます。目的にあわせて使いこなすことができるように、この記事を何度も参考にして下さいね!

    LINEで送る
    Pocket

    SEからWebエンジニアへ転職した理由

    侍エンジニア塾卒業生の小池さんは、以前は社内SEとして約5年ほど勤務していました。しかし業務内容は社内のヘルプデスク対応など、プログラムを書く仕事は全くなかったそうです。

    SEながらプログラムを書けない現状に「将来仕事がなくなるんじゃないか」と不安を感じ、プログラミング学習を決意。

    弊社スクールで学習し、無事ベンチャー企業のプログラマーとして転職に成功しました。そんな小池さんの学習法や転職体験談を伺いましたので、是非ご覧ください。

    「プログラミングができないSEは仕事がなくなる」不安を感じたSEが未経験から転職成功するまで
    更新日 : 2019年10月7日

    書いた人

    長野 透

    長野 透

    熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
    お問合せはこちらでも受け付けています。
    [email protected]

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説