C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で2つの配列を比較する方法【SequenceEqualの使い方】

C#で2つの配列が等しいかどうかを確認したい場合、System.Linq名前空間に含まれるSequenceEqual()メソッドを使用するのが最も簡単な方法です。このメソッドは、2つのシーケンス(配列)の要素数が同じで、かつ同じ順序で同じ要素が格納されている場合に true を返します。

1. 比較する2つの配列を用意する

まず、比較対象となる2つの配列を用意します。

// 2つの配列
int[] arr = new int[] { 99, 87, 56, 45 };
int[] brr = new int[] { 99, 87, 56, 45 };

2. SequenceEqual()で配列を比較する

次に、SequenceEqual()メソッドを呼び出して2つの配列を比較します。

arr.SequenceEqual(brr);

サンプルコード

以下は、2つの配列を比較して結果をコンソールに出力する完全なコード例です。

using System;
using System.Linq;

namespace Demo {
    class Program {

        static void Main(string[] args) {

            // 2つの配列
            int[] arr = new int[] { 99, 87, 56, 45 };
            int[] brr = new int[] { 99, 87, 56, 45 };

            // 配列を比較
            Console.WriteLine(arr.SequenceEqual(brr));
        }
    }
}

実行結果

True

ポイント解説

  • SequenceEqual()はLINQ拡張メソッドのため、使用するには using System.Linq; の宣言が必要です。
  • 要素の内容だけでなく順序も一致している必要があります。順序が異なる場合は false が返されます。
  • 戻り値は bool 型(true / false)です。
  • 参照型の配列を比較する場合、既定では参照の等価性ではなく要素の等価性(Equals)が評価されます。カスタムクラスを比較したい場合は、独自の IEqualityComparer<T> を引数に渡すことも可能です。

なお、単純に == 演算子や Equals() メソッドを使うと配列の参照が比較されるため、中身が同じでも false になる点に注意してください。配列の中身を比較する際は、必ず SequenceEqual() を使用しましょう。

  1. JavaScriptで2つの配列を乗算する方法|forループとmap()の実装例

    JavaScriptで2つの配列の各要素同士を乗算し、その結果を新しい配列として取得する方法を解説します。基本的にはforループでインデックスを順番に処理しながら、対応する位置にある要素同士を掛け合わせていくシンプルなアプローチです。 2つの配列を乗算するサンプルコード 以下の例では、「CLICK HERE」ボタンをクリックすると、配列 arr と arr1 の対応する要素が乗算され、結果が新しい配列 multArray に格納された上で画面に表示されます。 <!DOCTYPE html> <html lang=en> <head> <meta ch

  2. iPhone / iOS(Swift)で2つのNSDateを比較する方法を解説

    Swiftで2つのNSDateを比較する方法この記事では、Swiftを使って2つのNSDate(日付)を比較する方法を解説します。日付の比較は、予約アプリやスケジュール管理など、実際のiOSアプリ開発でもよく使われる処理です。今回はシミュレーターではなく、Playgroundを使って動作を確認していきます。1. 比較用の日付を2つ作成するまず、NSDateComponentsを使って2つの異なる日付を作成しましょう。ここでは「1993年6月5日」と「1995年2月4日」という2つの日付を定義します。let dateOne = NSDateComponents() dateOne.day = 5