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>
この例では、array1
と array2
が同じ要素を持ち、同じ順序である場合、SequenceEqual
は true
を返します。要素タイプのデフォルトの等価比較が使用されます。
注: 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 サイトの他の関連記事を参照してください。