C# で配列を比較する

  1. C#SequenceEqual() 関数を使用して配列を比較する
  2. C# で一致した要素を比較して配列を比較する

この記事では、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.

関連記事 - Csharp Array

  • C# で配列の長さを取得する
  • C# で配列を並べ替える
  • C# で配列を降順で並べ替える
  • C# で文字列をバイト配列に変換する方法