Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjana Nombor Rawak Unik dalam C#?
Menjana nombor rawak unik dalam C#
Soalan:
Pembangun C# sering menghadapi cabaran menjana nombor rawak yang unik. Walaupun anda menggunakan System.Random dan DateTime.Now.Ticks sebagai benih, anda mungkin menghadapi masalah dengan nombor pendua. Bolehkah anda mencadangkan cara alternatif untuk menyelesaikan masalah ini?
Jawapan:
Walaupun Random.Next tidak menjamin keunikan, penyelesaian mudah ialah mengekalkan senarai nombor yang dijana. Algoritma di bawah menunjukkan cara untuk mencapai ini:
<code class="language-csharp">public Random a = new Random(); private List<int> randomList = new List<int>(); int MyNumber = 0; private void NewNumber() { MyNumber = a.Next(0, 10); if (!randomList.Contains(MyNumber)) randomList.Add(MyNumber); }</code>
Kod ini memulakan contoh Rawak (tiada panggilan GetHashCode diperlukan kerana ia dilakukan secara dalaman secara lalai) dan senarai untuk menyimpan nombor yang dijana. Fungsi NewNumber menjana nombor rawak antara 0 dan 9. Jika nombor itu tiada dalam senarai, ia ditambah pada senarai, sekali gus memastikan keunikan nombor dalam julat yang diberikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nombor Rawak Unik dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!