C#怎么创建数组?C#怎么创建数组?
解决方案 »
- 可以把整个win form application做成另外一个程序里的tab control吗
- c#如何读取火车采集器.cwr后缀的模块文件
- DataSet的循环问题
- 怎么学C#啊?有没有好的点子书籍推荐下
- 请教,关于防止SQL注入的问题?
- 关于Winform的屏幕刷新问题
- 程序运行时出现common language runtime debugging services对话框 帮我看下,谢谢
- 这个msdn帮助上关于virtual关键字的例子不理解,那位高手可以给解释一下?
- 如果把内存中的table保存到sqlserver中???
- C#中把调用数据库的命令写在SqlHelper类中,编译后离开C#环境运行就出错
- 请问c#winform中,如何用程序判断系统是否安装excel?
- 关于Managed DirectX编程入门问题请教
int []a = new int[20];
string[][] a = new string[2][];
a[0] = new string[10];
a[1] = new string[20];
和c不一样,楼主加油呀!
strArray[0] = new strArray[] { 1, 2, 3, 4, 5 };
strArray[1] = new strArray[] { 1, 2, 3, 4 };
strArray[2] = new strArray[] { 1, 2, 3 };大概是这样的不是很记得。。
也可以:数据类型[] 数组名={初始值列表} //int[] a={1,2,3,4,5}
如果数组是这样的{1,2,3,4}
那么就要这样定义 int[] array={1,2,3,4}如果数组是这样的 {{1,2},{3,4}}
那么就是多维的了还有这样定义 int[3][4],int[5,6]建议还是看看 MSDN吧。嘿嘿
ps:感觉lz别有深意啊,哪位给解释下~~
这样可以吗?
原来楼主关心的是引用类型对象数组的创建方法。
上面各位xd给出的都是值类型的代码示例。//假定有个类叫AClass//先声明数组变量list
AClass[] list;//在Heap上为list分配内存
//注意:这里分配的内存仅仅是16个引用的内存。对32-bit的操作系统,每个引用的大小是4 bytes
list=new AClass[16];//分别创建16个AClass对象示例
//这里的new动作会为每个对象分配一块内存——而list[i]也会同时指向这块内存
for(int i =0; i<list.Length-1;i++){
list[i]=new AClass;
//此处可以进一步设置对象的其他属性
}
//显式创建
Array myArray = Array.CreateInstance(typeof(string), 3);
myArray.SetValue("a", 0);
myArray.SetValue("b", 1);
myArray.SetValue("c", 2);//无法直接赋值,导至出错
//myArray[0] = 99;//无法将带[]的索引应用于“System.Array”类型的表达式//必须经过显式的转换
int[] myArrayConvert = (int[])myArray;
myArrayConvert[0] = 99;[2]常规创建
int[] myArray = new int[3];
myArray[0] = 0;
myArray[1] = 1;
myArray[2] = 2;[3]隐式创建
//正确书写方法
int[] myArray0 = { 0, 1, 2 };
int[] myArray1 = { 0, 1, 2, };
int[] myArray2 = new []{ 0, 1, 2 };
int[] myArray3 = new int[] { 0, 1, 2 };
int[] myArray4 = new int[3] { 0, 1, 2 };//错误书写方法
//int[] myArrayErr = { 0, 1, "a" };//无法将类型“string”隐式转换为“int”
//int[] myArrayErr = new[] { 0, 1, "a" };//找不到隐式类型数组的最佳类型
//int[] myArrayErr = new[3] { 0, 1, 2 };//语法错误,应输入“]”
//int[] myArrayErr = new int[4] { 0, 1, 2 };//无效的秩说明符: 应为“,”或“]”[4]匿名创建
//正确书写方法
var myArray1 = new[] { 0, 1, 2 };
var myArray2 = new int[] { 0, 1, 2 };
var myArray3 = new int[3] { 0, 1, 2 };//错误书写方法
//var myArrayErr = { 0, 1, 2 };//无法用数组初始值设定项初始化隐式类型的局部变量[5]其它
int i = 1; char c = 'a';
string s = "s"; //正确书写方法
int[] myArray0 = { 0, i, 2 };
int[] myArray1 = { 0, c, 2 };//隐式转换 //错误书写方法
//int[] myArrayErr = { 0, s, 2 };//无法将类型“string”隐式转换为“int”在隐式的匿名的创建方式中,
数据的赋值实际上是调用了IList接口上的.Add()方法.