ホームページ >バックエンド開発 >C++ >C# には Java の Arrays.equals() のような配列を比較する組み込み関数がありますか?

C# には Java の Arrays.equals() のような配列を比較する組み込み関数がありますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-16 11:05:59228ブラウズ

Does C# Have a Built-in Function to Compare Arrays Like Java's Arrays.equals()?

C# 配列の比較: 効率的なソリューション

Java には、2 つの基本型配列を簡単に比較するための Arrays.equals() メソッドが用意されています。 C# にも同様の組み込み関数はありますか? C# で配列の内容を効率的に比較する方法を見てみましょう。

Enumerable.SequenceEqual

を使用します

C# の 1 つの方法は、Enumerable.SequenceEqual メソッドを使用することです。このメソッドは IEnumerable<T> コレクションで動作し、IEnumerable<T> を実装する配列やその他の型に適しています。

コード例:

<code class="language-csharp">int[] array1 = { 1, 2, 3 };
int[] array2 = { 1, 2, 3 };

bool areEqual = array1.SequenceEqual(array2);</code>

この例では、array1array2 が同じ要素を持ち、同じ順序である場合、SequenceEqualtrue を返します。要素タイプのデフォルトの等価比較が使用されます。

注: Enumerable.SequenceEqual は、配列だけでなく任意の IEnumerable<T> インスタンスで使用できるという点で、Java の同等のものよりも汎用的です。

カスタムコンパレータ

さらに柔軟性が必要な場合は、独自のカスタム等価コンパレーターを作成できます。これは、複雑なオブジェクトを操作する場合、または特定の比較ルールを定義する必要がある場合に便利です。

コード例:

<code class="language-csharp">public class CustomComparer : IEqualityComparer<Student>
{
    public bool Equals(Student x, Student y)
    {
        // ...在此处实现自定义比较逻辑...
    }

    public int GetHashCode(Student obj)
    {
        // ...在此处实现自定义哈希码逻辑...
    }
}

...

Student[] studentArray1 = { ... };
Student[] studentArray2 = { ... };

bool areEqual = studentArray1.SequenceEqual(studentArray2, new CustomComparer());</code>

カスタム コンパレーターを定義すると、特定のニーズに合わせて等価性チェック動作をカスタマイズできます。

以上がC# には Java の Arrays.equals() のような配列を比較する組み込み関数がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。