配列の比較

C# で配列を比較します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. フォルダーに次のファイルを格納して下さい。
    /*★ 配列の比較     前田 稔 ★*/
    using System;
    using System.Linq;
    
    class Prog
    {
        public static void Main()
        {
            int[]   ary1 = new int[]{ 1, 5, 2 };
            int[]   ary2 = { 1, 5, 2 };
            int[]   ary3 = new int[]{ 1, 5, 3 };
            string[]  ary4 = new string[]{ "abc", "NHK", "Tbs" };
            string[]  ary5 = { "abc", "NHK", "Tbs" };
            string[]  ary6 = { "abc", "NHK", "TBs" };
            string  str1, str2;
    
            if (ary1.SequenceEqual(ary2))   Console.WriteLine("ary1 と ary2 は等しい");
            else                            Console.WriteLine("ary1 と ary2 は一致しない");
            if (ary1.SequenceEqual(ary3))   Console.WriteLine("ary1 と ary3 は等しい");
            else                            Console.WriteLine("ary1 と ary3 は一致しない");
            if (ary4.SequenceEqual(ary5))   Console.WriteLine("ary4 と ary5 は等しい");
            else                            Console.WriteLine("ary4 と ary5 は一致しない");
            if (ary4.SequenceEqual(ary6))   Console.WriteLine("ary4 と ary6 は等しい");
            else                            Console.WriteLine("ary4 と ary6 は一致しない");
            str1 = String.Join(",", ary4);
            Console.WriteLine(str1);
            str2 = String.Join(",", ary5);
            Console.WriteLine(str2);
            if (str1==str2) Console.WriteLine("ary4 と ary5 は等しい");
            else            Console.WriteLine("ary4 と ary5 は一致しない");
            Console.ReadLine();
        }
    }
    
  2. C# で int 型の配列と string 型の配列を定義します。
    配列に初期値を設定する場合、new を使う書き方と使わない書き方があります。
    ary1, ary3, ary4 は new を使って、ary2, ary5, ary6 は new を使わずに初期値を設定してみました。
            int[]   ary1 = new int[]{ 1, 5, 2 };
            int[]   ary2 = { 1, 5, 2 };
            int[]   ary3 = new int[]{ 1, 5, 3 };
            string[]  ary4 = new string[]{ "abc", "NHK", "Tbs" };
            string[]  ary5 = { "abc", "NHK", "Tbs" };
            string[]  ary6 = { "abc", "NHK", "TBs" };
    
  3. SequenceEqual() は配列の並びを比較してくれる関数です。
    ary1.SequenceEqual(ary2) で ary1 と ary2 を比較します。
    ary1 と ary2 は等しく、ary1 と ary3 は一致しません。
            if (ary1.SequenceEqual(ary2))   Console.WriteLine("ary1 と ary2 は等しい");
            else                            Console.WriteLine("ary1 と ary2 は一致しない");
            if (ary1.SequenceEqual(ary3))   Console.WriteLine("ary1 と ary3 は等しい");
            else                            Console.WriteLine("ary1 と ary3 は一致しない");
    
  4. 文字列の配列を ary4.SequenceEqual(ary5) で比較します。
    ary4 と ary5 は等しく、ary4 と ary6 は一致しません。
            if (ary4.SequenceEqual(ary5))   Console.WriteLine("ary4 と ary5 は等しい");
            else                            Console.WriteLine("ary4 と ary5 は一致しない");
            if (ary4.SequenceEqual(ary6))   Console.WriteLine("ary4 と ary6 は等しい");
            else                            Console.WriteLine("ary4 と ary6 は一致しない");
    
  5. 文字列の配列は string に変換することが出来ます。
    String.Join() で string に変換すると SequenceEqual() を使わなくても直接比較することが出来ます。
            str1 = String.Join(",", ary4);
            Console.WriteLine(str1);
            str2 = String.Join(",", ary5);
            Console.WriteLine(str2);
    
    文字列に変換した str1 と str2 は一致します。
            if (str1==str2) Console.WriteLine("ary4 と ary5 は等しい");
            else            Console.WriteLine("ary4 と ary5 は一致しない");
    
  6. 二次元配列には直接 SequenceEqual は使えないようです。

[Next Chapter ↓]二次元配列を定義
[Previous Chapter ↑]配列の基礎

超初心者のプログラム入門(C# Frame Work)