2015年06月21日

LINQ to Objectサンプル(13): 2つのリストが等しいか調べる

  
2つのシーケンス(リストや配列など)の要素が等しいかを調べるコードです。

■ループを使ったコード
var list1 = new List<int> { 9, 7, 5, 4, 2, 4, 0, -4, 8, -1, 0, 4 };
var list2 = new List<int> { 9, 7, 5, 4, 2, 4, 0, -4, 8, -1, 0, 4 };
bool equal = true;
if (list1.Count != list2.Count) {
    equal = false;
} else {
    for (int i = 0; i < list1.Count; i++) {
        if (list1[i] != list2[i]) {
            equal = false;
            break;
        }
    }
}
Console.WriteLine(equal);


2つの要素数が同じときだけ、ループで各要素を比較しています。

■LINQを使ったコード
var list1 = new List<int> { 9, 7, 5, 4, 2, 4, 0, -4, 8, -1, 0, 4 };
var list2 = new List<int> { 9, 7, 5, 4, 2, 4, 0, -4, 8, -1, 0, 4 };
bool equal = list1.SequenceEqual(list2);
Console.WriteLine(equal);


LINQでは、SequenceEqualsメソッド呼び出すだけです。



 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52422655