Memahami dan menyelesaikan ".NET" Indeks daripada ralat julat
"IndexOutOfRangeException" dalam .NET timbul apabila anda cuba mengakses item dalam koleksi (seperti array atau senarai) menggunakan indeks yang tidak sah. Kerana koleksi .NET adalah diindeks sifar, julat indeks yang sah adalah dari 0 hingga (panjang - 1). Cuba mengakses elemen di luar julat ini -menggunakan indeks negatif atau indeks yang sama dengan atau lebih besar daripada pencetus panjang pengecualian ini.mari kita ilustrasikan dengan contoh array:
<code class="language-csharp">int[] numbers = new int[5]; // Array with 5 elements (indices 0-4) Console.WriteLine(numbers[5]); // Throws IndexOutOfRangeException</code>
cuba mengakses elemen keenam, yang tidak wujud, menyebabkan kesilapan. numbers[5]
Bekerja dengan koleksi lain
Pengindeksan berasaskan sifar ini digunakan untuk koleksi lain, termasuk. Unsur yang boleh diakses terakhir sentiasa di indeks List<T>
. Count - 1
dengan batas eksplisit memeriksa: for
<code class="language-csharp">List<string> names = new List<string> { "Alice", "Bob", "Charlie" }; for (int i = 0; i < names.Count; i++) { Console.WriteLine(names[i]); }</code>
, yang mengendalikan lelaran secara automatik dan menghalang kesilapan indeks: foreach
<code class="language-csharp">foreach (string name in names) { Console.WriteLine(name); }</code>
Mencegah IndexOutOfRangeExceptions
untuk mengelakkan pengecualian ini:
Length - 1
). Count - 1
Count
: Length
menggunakan harta (untuk senarai) atau Count
harta (untuk tatasusunan) untuk menentukan saiz koleksi. Length
foreach
gelung memudahkan lelaran dan menghapuskan risiko ralat pengindeksan manual. foreach
try-catch
IndexOutOfRangeException
Atas ialah kandungan terperinci Mengapa saya mendapat ralat 'Indeks Out of Range' dalam kod saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!