C#中数组如何赋值
2011-06-29 20:14
381 查看
声明数组之后,可以立即为其填充值。方法是在一对大括号中,使用一个以逗号分隔的数据项列表。代码清单2-30声明了一个字符串数组,然后在一对大括号中指定了9种不同的编程语言的名称。
声明数组的同时进行赋值
string[] languages = { "C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#"};
在这个以逗号分隔的列表中,第一项成为数组的第一个元素,第二项成为第二个元素,依此类推。我们使用大括号来定义一个数组字面量。
只有在同一个语句中声明并赋值时,代码清单2-30的赋值语法才可用。如果是在声明了之后才进行赋值,则需要使用new关键字和对应的数据类型,如代码清单2-31所示。
代码清单2-31 声明之后再进行数组赋值
string[] languages;
languages = new string[]{"C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#" };
C#还支持将new关键字作为声明语句的一部分使用,所以它允许像代码清单2-32那样的赋值和声明。
代码清单2-32 声明的同时使用new进行数组赋值
string[] languages = new string[]{
"C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#"};
使用new关键字是告诉“运行时”为数据类型分配内存。它指示“运行时”实例化数据类型——本例是一个数组。
任何时候将new关键字作为数组赋值的一部分使用,都可以同时在方括号内指定数组的大小。代码清单2-33演示了这个语法。
代码清单2-33 使用new关键字进行声明和赋值
string[] languages = new string[9]{
"C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#"};
在初始化语句中,数组的大小和大括号中包含的元素数量必须匹配。除此之外,也可以分配一个数组,但不指定它的初始值,如代码清单2-34所示。
代码清单2-34 分配数组,但不指定初始值
string[] languages = new string[9];
分配一个数组但不指定初始值仍然会初始化每个元素。“运行时”会将每个元素初始化为它们的默认值,如下所示:
引用类型(比如string)初始化为null;
数值类型初始化为零;
bool初始化为false;
char初始化为/0。
其结果就是,在使用之前,不必单独对数组的每个元素进行赋值。
在C# 2.0中,可以使用default()运算符来判断一种数据类型的默认值。default()获取一个数据类型作为参数。例如,default(int)会返回0,而default(char)会返回/0。
由于数组大小不被作为变量声明的一部分,所以可以在运行时指定数组大小。例如,代码清单2-35根据在Console.ReadLine()调用中由用户指定的大小来创建一个数组。
代码清单2-35 在运行时定义数组大小
string[] groceryList;
System.Console.Write("How many items on the list? ");
int size = int.Parse(System.Console.ReadLine());
groceryList = new string[size];
// ...
C#采取类似的方式来处理多维数组。要以逗号分隔每一维上的大小。代码清单2-36初始化了一个没有走棋的tic-tac-toe棋盘。
代码清单2-36 声明一个二维数组
int[,] cells = int[3,3];
还可以像代码清单2-37那样,将一个tic-tac-toe棋盘初始化成特定的棋子布局。
初始化一个二维整数数组
int[,] cells = {
{1, 0, 2},
{1, 2, 0},
{1, 2, 1}
};
初始化采用的模式是一个有3个int[]类型的元素的数组,每个元素都具有相同的大小。在本例中,这个大小是3。注意,每个int[]元素的维必须是完全一致的。也就是说,像代码清单2-38那样的声明是无效的。
声明数组的同时进行赋值
string[] languages = { "C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#"};
在这个以逗号分隔的列表中,第一项成为数组的第一个元素,第二项成为第二个元素,依此类推。我们使用大括号来定义一个数组字面量。
只有在同一个语句中声明并赋值时,代码清单2-30的赋值语法才可用。如果是在声明了之后才进行赋值,则需要使用new关键字和对应的数据类型,如代码清单2-31所示。
代码清单2-31 声明之后再进行数组赋值
string[] languages;
languages = new string[]{"C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#" };
C#还支持将new关键字作为声明语句的一部分使用,所以它允许像代码清单2-32那样的赋值和声明。
代码清单2-32 声明的同时使用new进行数组赋值
string[] languages = new string[]{
"C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#"};
使用new关键字是告诉“运行时”为数据类型分配内存。它指示“运行时”实例化数据类型——本例是一个数组。
任何时候将new关键字作为数组赋值的一部分使用,都可以同时在方括号内指定数组的大小。代码清单2-33演示了这个语法。
代码清单2-33 使用new关键字进行声明和赋值
string[] languages = new string[9]{
"C#", "COBOL", "Java",
"C++", "Visual Basic", "Pascal",
"Fortran", "Lisp", "J#"};
在初始化语句中,数组的大小和大括号中包含的元素数量必须匹配。除此之外,也可以分配一个数组,但不指定它的初始值,如代码清单2-34所示。
代码清单2-34 分配数组,但不指定初始值
string[] languages = new string[9];
分配一个数组但不指定初始值仍然会初始化每个元素。“运行时”会将每个元素初始化为它们的默认值,如下所示:
引用类型(比如string)初始化为null;
数值类型初始化为零;
bool初始化为false;
char初始化为/0。
其结果就是,在使用之前,不必单独对数组的每个元素进行赋值。
在C# 2.0中,可以使用default()运算符来判断一种数据类型的默认值。default()获取一个数据类型作为参数。例如,default(int)会返回0,而default(char)会返回/0。
由于数组大小不被作为变量声明的一部分,所以可以在运行时指定数组大小。例如,代码清单2-35根据在Console.ReadLine()调用中由用户指定的大小来创建一个数组。
代码清单2-35 在运行时定义数组大小
string[] groceryList;
System.Console.Write("How many items on the list? ");
int size = int.Parse(System.Console.ReadLine());
groceryList = new string[size];
// ...
C#采取类似的方式来处理多维数组。要以逗号分隔每一维上的大小。代码清单2-36初始化了一个没有走棋的tic-tac-toe棋盘。
代码清单2-36 声明一个二维数组
int[,] cells = int[3,3];
还可以像代码清单2-37那样,将一个tic-tac-toe棋盘初始化成特定的棋子布局。
初始化一个二维整数数组
int[,] cells = {
{1, 0, 2},
{1, 2, 0},
{1, 2, 1}
};
初始化采用的模式是一个有3个int[]类型的元素的数组,每个元素都具有相同的大小。在本例中,这个大小是3。注意,每个int[]元素的维必须是完全一致的。也就是说,像代码清单2-38那样的声明是无效的。
相关文章推荐
- C#中数组如何赋值
- C#中数组如何赋值
- C语言 第 7 节 如何将字符串指针指向的内容赋值给数组
- c#里如何实现控件数组
- 如何给给字符数组赋值
- C# 如何用长度来切分字符串数组
- 在C#中如何比较两个byte[]数组相等
- C# 如何实现richTextBox控件输入数组长度
- 如何用C#求两数组的交集和并集
- 如何给字符串数组赋值
- C#中如何向数组中动态添加元素
- C#随机不重复给数组赋值1-100并排…
- c# 如何将字符串中用","分开的数字分别存入数组中
- C# 中如何实现数组的 Join
- C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?
- C#随机不重复给数组赋值1-100并排…
- c# 如何将字符串中用","分开的数字分别存入数组中
- 如何:将字节数组转换为 基本类型(C# 编程指南)
- C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
- [Excel VBA] 在VBA中如何将SQL得到的数据直接赋值到数组?