Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Membandingkan Tatasusunan dengan Cekap dalam C#?

Bagaimanakah Saya Boleh Membandingkan Tatasusunan dengan Cekap dalam C#?

Patricia Arquette
Patricia Arquetteasal
2025-01-16 10:48:57764semak imbas

How Can I Efficiently Compare Arrays in C#?

Kaedah perbandingan tatasusunan C#

Kaedah Arrays.equals() Java boleh membandingkan elemen dua tatasusunan dengan mudah. Adakah terdapat fungsi serupa dalam C# untuk membandingkan kandungan tatasusunan dengan cekap?

Penyelesaian:

Walaupun C# tidak mempunyai persamaan yang tepat dengan kaedah Arrays.equals(), kaedah Enumerable.SequenceEqual menyediakan fungsi yang serupa. Kaedah ini ditakrifkan dalam System.Linq ruang nama dan boleh digunakan untuk membandingkan elemen mana-mana koleksi IEnumerable<T>, termasuk tatasusunan.

Penggunaan:

Untuk membandingkan dua tatasusunan menggunakan Enumerable.SequenceEqual, hanya hantar kedua-dua tatasusunan sebagai argumen kepada kaedah:

<code class="language-csharp">bool areEqual = Enumerable.SequenceEqual(array1, array2);</code>

Kelebihan:

Kaedah

Enumerable.SequenceEqual mempunyai kelebihan berikut apabila membandingkan tatasusunan C#:

  • Kegenerasian: Ia boleh digunakan dengan sebarang jenis tatasusunan (cth., int[], string[], object[]).
  • Kesederhanaan: Mudah digunakan dan kurang kod.
  • Kecekapan: Enumerable.SequenceEqual Gunakan kaedah pelaksanaan malas, yang bermaksud tatasusunan hanya akan dilalui jika kandungan tatasusunan berbeza.

Pilihan lain:

Jika anda perlu membandingkan secara khusus tatasusunan jenis primitif (cth., int[], double[]), anda boleh menggunakan pengendali kesamaan struktur terbina dalam (==) atau kaedah System.Array.Equals. Walau bagaimanapun, pilihan ini tidak serba boleh seperti Enumerable.SequenceEqual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membandingkan Tatasusunan dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn