HOWTO · Csharp

C# で配列を比較する

この記事では、C# で 2つ以上の配列が等しいかどうかを比較および確認する方法を学習します。

このページの内容

この記事では、2つのアレイを比較して、それらが等しいかどうかを確認します。

アレイを比較するために説明および実装する 2つの方法は、次のとおりです。

  • SequenceEqual() 関数;
  • 各配列で一致した要素の比較。

2つの配列が同じ一致要素と同じ数の要素を持っている場合、それらは等しいと言われます。

C#SequenceEqual() 関数を使用して配列を比較する

まず、ライブラリをインポートして、SequenceEqual() 関数にアクセスする必要があります。

using System.Linq;

Main() 関数を使用して ArrayCompare クラスを作成します。

class ArrayCompare {
  static void Main(string[] args) {}
}

isEqual 変数をブールデータ型変数として宣言します。配列が等しいかどうかに基づいて、True または False を返します。

Boolean isEqual;

firstArray および secondArray という名前のデータ型 int[] の 2つの配列を初期化し、それらに比較する整数値を割り当てます。

int[] firstArray = { 10, 20, 30, 40, 40, 50 };
int[] secondArray = { 10, 20, 30, 40, 40, 50 };

SequenceEqual() メソッドを使用して、これら 2つの配列を比較します。

isEqual = firstArray.SequenceEqual(secondArray);

isEqual 変数に true または false の値が保存されたので、それが何を返すかを確認する必要があります。返される値が True の場合、if ブロックが実行され、返される値が False の場合、else ブロックが実行されます。

if (isEqual) {
  Console.WriteLine("Both the arrays are equal");
} else {
  Console.WriteLine("Both the arrays are not equal");
}

ソースコード:

using System;
using System.Linq;

class ArrayCompare {
  static void Main(string[] args) {
    Boolean isEqual;
    int[] firstArray = { 10, 20, 30, 40, 40, 50 };
    int[] secondArray = { 10, 20, 30, 40, 40, 50 };
    isEqual = firstArray.SequenceEqual(secondArray);
    if (isEqual) {
      Console.WriteLine("Both the arrays are equal.");
    } else {
      Console.WriteLine("Both the arrays are not equal.");
    }
  }
}

両方の配列が等しい場合、

出力:

Both the arrays are equal.

firstArray の要素を次のように変更するとします。

int[] firstArray = { 10, 20, 30, 40, 30, 60 };

出力:

Both the arrays are not equal.

C# で一致した要素を比較して配列を比較する

ブール変数を作成し、Main() 関数内でその値を true に設定します。

Boolean isEqual = true;

前の方法と同じ方法で 2つのアレイを初期化します。

int[] firstArray = { 10, 20, 30, 40, 40, 50 };
int[] secondArray = { 10, 20, 30, 40, 40, 50 };

両方の配列の長さを決定する必要があります。さらに、等しくするには、すべてのインデックス値が同じである必要があります。

それでは、firstArraysecondArray の長さが等しくなるように条件を適用しましょう。True を返す場合は、すべてのインデックスで値を検証する必要があります。それ以外の場合、isEqual 値は false になります。

配列のすべてのインデックスが等しいかどうかを確認するために、インデックス 0 から始まり、secondArray の長さにわたって反復する for ループを使用します。すべてのインデックスの値を検証し、それらがすべて同じでない場合は、isEqual の値を False に設定します。

if (firstArray.Length == secondArray.Length) {
  for (int y = 0; y < secondArray.Length; y++) {
    if (secondArray[y] != firstArray[y]) {
      isEqual = false;
    }
  }
} else {
  isEqual = false;
}

最後に、配列が等しいかどうかというメッセージを出力する必要があります。

if (isEqual) {
  Console.WriteLine("The arrays are equal");
} else {
  Console.WriteLine("The arrays are not equal");
}

ソースコード:

using System;

class ArrayCompare {
  static void Main(string[] args) {
    Boolean isEqual = true;
    int[] firstArray = { 10, 20, 30, 40, 40, 50 };
    int[] secondArray = { 10, 20, 30, 40, 40, 50 };
    if (firstArray.Length == secondArray.Length) {
      for (int y = 0; y < secondArray.Length; y++) {
        if (secondArray[y] != firstArray[y]) {
          isEqual = false;
        }
      }
    } else {
      isEqual = false;
    }
    if (isEqual) {
      Console.WriteLine("Both the arrays are equal.");
    } else {
      Console.WriteLine("Both the arrays are not equal.");
    }
  }
}

両方の配列が等しい場合:

出力:

Both the arrays are equal.

2つの配列のいずれかの要素を変更した場合:

出力:

Both the arrays are not equal.