C#の『SequenceEqual』の使い方が分からない…教えてください!
C#を学んでいるけど…
「SequenceEqualの使い方が分からない」
このような疑問を持っていませんか?
この記事では、LINQのひとつである『SequenceEqual』について現役エンジニアが分かりやすく解説します。
まだ、C#の開発環境構築が出来ていない方はこちらを参考にしてください。
SequenceEqualの使い方
SequenceEqualの使い方を解説する前に、SequenceEqualで何が出来るのかを把握しておきましょう。
SequenceEqual = 指定したリストが同じか比較
このような考え方で問題ありません。SequenceEqualを使用すると指定した配列(リスト)が、指定した別の配列(リスト)と同等かを返します。
それでは、実際のコードを用いながらSequenceEqualの使い方を解説していきます。
まずは、SequenceEqualの使い方から説明します。SequenceEqualを使うときには以下のように記述します。
配列.SequenceEqual(配列)
実際のコードを用いながらSequenceEqualの使い方を解説していきます。
SequenceEqualを使ってシーケンスを出力するときには以下のように記述します。
using System;
using System.Collections.Generic;
using System.Linq;
namespace sample
{
class LinqSequenceEqual
{
static public void BlogLinqSequenceEqual()
{
//値一覧を変数NumberListとして宣言・初期化
int[] NumberList1 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] NumberList2 = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] NumberList3 = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
//Countの実行結果を出力
Console.WriteLine($"NumberList1とNumberList2は同じ:{NumberList1.SequenceEqual(NumberList2)}");
Console.WriteLine($"NumberList1とNumberList3は同じ:{NumberList1.SequenceEqual(NumberList3)}");
Console.WriteLine($"NumberList2とNumberList3は同じ:{NumberList2.SequenceEqual(NumberList3)}");
}
}
}
サンプルコードを実行した際の出力結果は、以下のようになります。
NumberList1とNumberList2は同じ:True
NumberList1とNumberList3は同じ:False
NumberList2とNumberList3は同じ:False
注目していただきたいのは、SequenceEqualを使っている17,18,19行目です。
配列.SequenceEqual(配列)
これを基にサンプルコードを解説すると、「配列 = NumberList1(NumberList2、NumberList3)」となります。
つまり、配列(NumberList1(NumberList2、NumberList3))と別の配列(NumberList1(NumberList2、NumberList3))が同じかのbool値を出力(Console.WriteLine)するということです。
このようにして、C#ではSequenceEqualを使用することで、配列(リスト)に任意の型の値を返すというコードを簡潔に書くことが出来ます。
【まとめ】SequenceEqualは全要素の値が等しいかをチェックできる
SequenceEqualの使い方は理解できましたか?
この記事では、C#のSequenceEqualの使い方について紹介しました。
最後になりますが、ここに関してもっと詳しく教えて欲しいときなどは、遠慮なく、お問い合わせ、コメント、Twitterにてご連絡ください。
最後までお読みいただきありがとうございました。