Bagaimanakah tatasusunan berfungsi dalam C#?

WBOY
Lepaskan: 2023-09-10 09:41:08
ke hadapan
1303 orang telah melayarinya

数组在 C# 中如何工作?

Tatasusunan mewakili bilangan elemen tetap bagi jenis tertentu. Elemen disimpan dalam blok memori bersebelahan, dan anda boleh mengakses elemen dengan cekap selagi anda mengetahui indeksnya.

Sintaks C# untuk mengisytiharkan dan memulakan tatasusunan adalah seperti berikut -

// create a string array to hold 5 languages
string[] languages = new string[3];
Salin selepas log masuk

Selepas mengisytiharkan tatasusunan, anda boleh menggunakan simbol segi empat sama pada tatasusunan untuk mengisi item dalam tatasusunan.

languages[0] = "csharp";
languages[1] = "visual basic";
languages[2] = "f#";
Salin selepas log masuk

Walau bagaimanapun, terdapat alternatif sintaks ringkas yang menggabungkan dua langkah di atas dalam satu langkah.

string[] languages = new string[] { "csharp", "visual basic", "f#" };
Salin selepas log masuk

Dengan pembolehubah yang ditaip secara tersirat dalam C#, anda boleh menyingkirkan jenis di sebelah kiri nama pembolehubah dan hanya menggunakan var.

var languages = new string[] { "csharp", "visual basic", "f#" };
Salin selepas log masuk

Anda boleh mengakses mana-mana elemen dalam tatasusunan menggunakan tatatanda segi empat sama.

string language = languages[0];
Console.WriteLine(language); // prints csharp
Salin selepas log masuk

Sifat Panjang tatasusunan memberitahu kita berapa banyak item dalam tatasusunan.

int count = languages.Length;
Console.WriteLine(count); // 3
Salin selepas log masuk

Adalah penting untuk diingat bahawa panjang tatasusunan tidak boleh diubah setelah ia dibuat. Percubaan untuk mengakses elemen di luar sempadan tatasusunan membuang pengecualian.

string lang = languages[3]; // throws System.IndexOutOfRangeException
Salin selepas log masuk

Jika anda ingin menggelung pada tatasusunan, gunakan gelung for atau foreach yang disediakan oleh bahasa tersebut.

// for loop
for (int i = 0; i < languages.Length; i++){
   string l = languages[i];
   Console.WriteLine(l); // prints the names of languages in sequence
}
// foreach loop
foreach (string l in languages){
   Console.WriteLine(l); // prints the names of languages in sequence
}
Salin selepas log masuk

Nilai lalai

Apabila anda mencipta tatasusunan, pengkompil C# memulakan elemen kepada nilai lalainya. Sebagai contoh, mencipta tatasusunan integer menetapkan nilai setiap elemen kepada 0.

var numbers = new int[3];
foreach (int num in numbers){
   Console.WriteLine(num); // prints 000
}
Salin selepas log masuk

Apabila elemen adalah daripada jenis nilai, setiap ahli jenis itu diberikan nilai lalainya.

Point[] a = new Point[4];
int x = a[2].X;
Console.WriteLine(x); // prints 0
public struct Point { public int X, Y; }
Salin selepas log masuk

Walau bagaimanapun, untuk jenis rujukan, pengkompil hanya mencipta rujukan nol untuk setiap item.

User[] u = new User[4];
int y = u[2].Y; // NullReference exception
public class User { public int X, Y; }
Salin selepas log masuk

Untuk mengelakkan ralat ini, anda mesti memulakan setiap item secara eksplisit seperti yang ditunjukkan di bawah.

User[] users = new User[5];
for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999
users[i] = new User();
Salin selepas log masuk

Contoh

Demonstrasi masa nyata

using System;
class Program{
   static void Main(){
      string[] languages = new string[3]; // create a string array to hold 5 languages
      languages[0] = "csharp";
      languages[1] = "visual basic";
      languages[2] = "f#";
      string[] langugages_two = new string[] { "csharp", "visual basic", "f#" };
      var languages_three = new string[] { "csharp", "visual basic", "f#" };
      string language = languages[0];
      Console.WriteLine(language); // prints csharp
      int count = languages.Length; // 3
      Console.WriteLine(count);
      //string lang = languages[3]; // throws System.IndexOutOfRangeException
      // for loop
      for (int i = 0; i < languages.Length; i++){
         string l = languages[i];
         Console.WriteLine(l); // prints the names of languages in sequence
      }
      // foreach loop
      foreach (string l in languages){
         Console.WriteLine(l); // prints the names of languages in sequence
      }
      var numbers = new int[3];
      foreach (int num in numbers){
         Console.WriteLine(num); // prints 000
      }
      Point[] a = new Point[4];
      int x = a[2].X;
      Console.WriteLine(x); // prints 0
      User[] u = new User[4];
      //int y = u[2].Y; // NullReference exception
      User[] users = new User[5];
      for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999
      users[i] = new User();
   }
}
public struct Point { public int X, Y; }
public class User { public int X, Y; }
Salin selepas log masuk

Output

csharp
3
csharp
visual basic
f#
csharp
visual basic
f#
0
0
0
0
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah tatasusunan berfungsi dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!