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

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

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

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

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

    目次

    string配列の宣言、初期化

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

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

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

    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]

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

    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メソッドの使い方については、こちらで詳しく解説しています。

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

    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

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

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

    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メソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

    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メソッドの使い方については、こちらで詳しく解説しています。

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

    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メソッドの使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

    まとめ

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

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

    この記事を書いた人

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

    目次