概要
SequenceEqualメソッドは、2つのシーケンスが等しいかどうかを判断するメソッドです。シーケンスの中身が同じであればtrueを返します。
この記事では、SequenceEqualメソッドの使用例について説明します。
公式サイト情報はコチラを参照してください。
構文
「SequenceEqual メソッド」は、2つのシーケンスが等しいかどうかを比較するためのメソッドです。
構文は以下のようになっています。
public static bool SequenceEqual( this IEnumerable first, IEnumerable second);
第1引数 first は比較する最初のシーケンス、第2引数 second は比較する2番目のシーケンスを表します。
このメソッドは、要素の比較には等値比較子が使用されます。シーケンス内の要素が等しければ、シーケンスが等しいとみなされます。要素の比較には、GetHashCode メソッドと Equals メソッドが使用されます。これらのメソッドがオーバーライドされていない場合は、各要素の型で定義された既定の等値比較子が使用されます。
このメソッドは、シーケンス内の要素の順序が同じであるかどうかも考慮します。2つのシーケンスの要素の順序が異なる場合は、シーケンスが等しくないと判断されます。
また、シーケンス内の要素の数が異なる場合、シーケンスが等しくないと判断されます。
使用例
以下は、SequenceEqualメソッドを使用して2つのシーケンスが同じ要素を持つかどうかを判定する例です。
int[] arr1 = { 1, 2, 3 }; int[] arr2 = { 1, 2, 3 }; bool isEqual = arr1.SequenceEqual(arr2); Console.WriteLine(isEqual); // True string[] strArr1 = { "apple", "banana", "orange" }; string[] strArr2 = { "Apple", "Banana", "Orange" }; // 文字列の比較は大文字小文字を区別するため、falseになる isEqual = strArr1.SequenceEqual(strArr2); Console.WriteLine(isEqual); // False // 大文字小文字を無視して比較する場合は、StringComparer.OrdinalIgnoreCaseを使用する isEqual = strArr1.SequenceEqual(strArr2, StringComparer.OrdinalIgnoreCase); Console.WriteLine(isEqual); // True
この例では、SequenceEqualメソッドを使用して、arr1とarr2が同じ要素を持つかどうかを判定しています。isEqual変数には、arr1とarr2が同じ要素を持つ場合はtrue、異なる場合はfalseが設定されます。
また、2つ目の例では、SequenceEqualメソッドを使用して、strArr1とstrArr2が同じ要素を持つかどうかを判定しています。ただし、文字列の比較は大文字小文字を区別するため、isEqual変数にはfalseが設定されます。その後、StringComparer.OrdinalIgnoreCaseを使用して、大文字小文字を無視して比較することで、isEqual変数にはtrueが設定されます。
.NET クラス Tips 一覧
これまでに紹介した .NET Tips 一覧はこちら。
コメント