コレクションや配列の中身が同じかどうか判定するには
.SequenceEqual を使用します。
サンプル
例1)List型の場合
using System.Collections.Generic;
using System.Linq;
// intのListを生成
List<int> list1 = new List<int>(){1, 2, 3};
List<int> list2 = new List<int>(){1, 2, 3};
List<int> list3 = new List<int>(){1, 2};
// list1とlist2の内容が同じかどうか判定する
bool result = list1.SequenceEqual(list2);
→ true
// list1とlist3の内容が同じかどうか判定する
bool result = list1.SequenceEqual(list3);
→ false
例2)配列の場合
using System.Linq;
// intの配列を生成
int[] arr1 = new int[] { 1, 2, 3 };
int[] arr2 = new int[] { 1, 2, 3 };
int[] arr3 = new int[] { 1, 2 };
// arr1 とarr2 の内容が同じかどうか判定する
bool result = arr1.SequenceEqual(arr2);
→ true
// arr1 とarr3 の内容が同じかどうか判定する
bool result = arr1.SequenceEqual(arr3);
→ false
備考
- LINQを使用するには、「using System.Linq;」の宣言が必要です。
- Listと配列を比較するなど、異なるオブジェクトでも比較できます。