Perbandingan Tatasusunan C#: Penyelesaian Cekap
Java menyediakan kaedah Arrays.equals()
untuk membandingkan dua tatasusunan jenis asas dengan mudah. Adakah C# mempunyai fungsi terbina dalam yang serupa? Mari kita terokai cara membandingkan kandungan tatasusunan dengan cekap dalam C#.
Gunakan Enumerable.SequenceEqual
Salah satu cara dalam C# ialah menggunakan kaedah Enumerable.SequenceEqual
. Kaedah ini berfungsi pada koleksi IEnumerable<T>
dan sesuai untuk tatasusunan dan jenis lain yang melaksanakan IEnumerable<T>
.
Contoh kod:
<code class="language-csharp">int[] array1 = { 1, 2, 3 }; int[] array2 = { 1, 2, 3 }; bool areEqual = array1.SequenceEqual(array2);</code>
Dalam contoh ini, jika array1
dan array2
mempunyai elemen yang sama dan dalam susunan yang sama, SequenceEqual
akan mengembalikan true
. Ia menggunakan perbandingan kesamaan lalai bagi jenis elemen.
Nota: Enumerable.SequenceEqual
adalah lebih umum daripada yang setara dengan Java kerana ia boleh digunakan dengan mana-mana contoh IEnumerable<T>
, bukan hanya tatasusunan.
Pembanding Tersuai
Jika anda memerlukan lebih fleksibiliti, anda boleh membuat pembanding kesaksamaan tersuai anda sendiri. Ini berguna apabila bekerja dengan objek kompleks atau apabila peraturan perbandingan khusus perlu ditakrifkan.
Contoh kod:
<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>
Dengan mentakrifkan pembanding tersuai, anda boleh menyesuaikan gelagat semakan kesaksamaan untuk memenuhi keperluan khusus anda.
Atas ialah kandungan terperinci Adakah C# Mempunyai Fungsi Terbina dalam untuk Membandingkan Tatasusunan Seperti Arrays.equals() Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!