回答編集履歴
2
指摘を反映
test
CHANGED
@@ -8,16 +8,15 @@
|
|
8
8
|
|
9
9
|
> 同じ配列として認識させる方法はリストの要素を1つ1つ照らし合わせるしかないのでしょうか?
|
10
10
|
|
11
|
+
(さらに追記、というか訂正)
|
11
|
-
これはその通りです。要素を一つずつ比較して全ての要素が同値かどうか判断してください。
|
12
|
+
~~これはその通りです。要素を一つずつ比較して全ての要素が同値かどうか判断してください。~~
|
12
13
|
|
13
|
-
---
|
14
|
-
(追記)
|
15
|
-
|
14
|
+
Zuishinさんからコメントで指摘があったように、LINQ の `SequenceEqual` 使えばいいです。
|
16
15
|
```C#
|
17
|
-
bool IsEqualsList<T>(IList<T> list1, IList<T> list2)
|
18
|
-
=> list1 != null &&
|
19
|
-
|
16
|
+
using System.Linq;
|
17
|
+
|
20
|
-
|
18
|
+
var list1 = new List<T>() { 1, 2, 3 };
|
21
|
-
|
19
|
+
var list2 = new List<T>() { 1, 2, 3 };
|
20
|
+
|
22
|
-
|
21
|
+
var result = list1.SequenceEqual(list2); // => true
|
23
22
|
```
|
1
リスト比較用メソッドのサンプルを追記
test
CHANGED
@@ -10,4 +10,14 @@
|
|
10
10
|
|
11
11
|
これはその通りです。要素を一つずつ比較して全ての要素が同値かどうか判断してください。
|
12
12
|
|
13
|
-
|
13
|
+
---
|
14
|
+
(追記)
|
15
|
+
こんなメソッドを用意すると比較が楽かもしれません。
|
16
|
+
```C#
|
17
|
+
bool IsEqualsList<T>(IList<T> list1, IList<T> list2)
|
18
|
+
=> list1 != null &&
|
19
|
+
list2 != null &&
|
20
|
+
list1.Count == list2.Count &&
|
21
|
+
Enumerable.Range(0, list1.Count)
|
22
|
+
.All(i => EqualityComparer<T>.Default.Equals(list1[i], list2[i]));
|
23
|
+
```
|