您好,欢迎访问一九零五行业门户网

数组在 C# 中如何工作?

数组表示给定类型的固定数量的元素。元素存储在连续的内存块中,只要您知道元素的索引,就可以高效地访问元素。
声明和初始化数组的 c# 语法如下 -// create a string array to hold 5 languagesstring[] languages = new string[3];
声明数组后,您可以使用数组上的平方符号来填充数组中的项目。
languages[0] = "csharp";languages[1] = "visual basic";languages[2] = "f#";
但是,有一种替代的简洁语法可以将上述两个步骤组合在一个步骤中。
string[] languages = new string[] { "csharp", "visual basic", "f#" };
使用 c# 中的隐式类型变量,您可以去掉变量名称左侧的类型,而只使用 var。
var languages = new string[] { "csharp", "visual basic", "f#" };
您可以使用相同的平方表示法访问数组中的任何元素。
string language = languages[0];console.writeline(language); // prints csharp
数组的 length 属性告诉我们该数组中有多少项。
int count = languages.length;console.writeline(count); // 3
请务必记住,数组一旦创建就无法更改其长度。尝试访问数组边界之外的元素会引发异常。
string lang = languages[3]; // throws system.indexoutofrangeexception
如果要循环数组,请使用该语言提供的 for 或 foreach 循环。
// for loopfor (int i = 0; i < languages.length; i++){ string l = languages[i]; console.writeline(l); // prints the names of languages in sequence}// foreach loopforeach (string l in languages){ console.writeline(l); // prints the names of languages in sequence}
默认值创建数组时,c# 编译器会将元素初始化为其默认值。例如,创建一个整数数组会将每个元素的值设置为 0。
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 0public struct point { public int x, y; }
但是,对于引用类型,编译器只是为每个项目创建空引用。
user[] u = new user[4];int y = u[2].y; // nullreference exceptionpublic class user { public int x, y; }
要避免该错误,您必须显式初始化每个项目,如下所示。
user[] users = new user[5];for (int i = 0; i < users.length; i++) // iterate i from 0 to 999users[i] = new user();
示例 实时演示
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; }
输出csharp3csharpvisual basicf#csharpvisual basicf#0000
以上就是数组在 c# 中如何工作?的详细内容。
其它类似信息

推荐信息