C#为字符串数组动态赋值的问题
2017-09-29 11:33
435 查看
今天才发现一个很简单很基本的问题,就是怎么也不能正确。
方法1: string[] a; a[0] = "we";MessageBox.Show(a[0]); //使用了未赋值的局部变量a
方法2: string[] a = new string[] { }; a[0] = "we"; MessageBox.Show(a[0]); //可以编译通过.....
解决方案:
改用List<string>吧!
方法一是没有new(没有分配空间)。
方法二是在new的时候没有指定大小,默认是0个元素,所以对其任意一个元素赋值都是越界。
在C#中,数组一般用来存放大小确定的数据。
如果数组大小未知,建议使用List<>.
List<string> a=new List<string>();
a.Add("we");
MessageBox.Show(a[0]);
同时,你可以用a.ToArray()来随时转换成string[]。
也可以List<string> b=new List<string>(a.ToArray());
将数组数据初始化进List<>。
对象是需要new的,如果不new,就不知道数组的长度。
如果本身是不定长的数组,可以用List等数据结构来保存。
string[] a = new string[] { };
a[0] = "we";
你可以在方法2中声明了a数组后,a.lengh看看a有几个元素。
另外,b = a.Split('|');
是对b重新赋值了,也就等于重新new了一个数组。
方法1: string[] a; a[0] = "we";MessageBox.Show(a[0]); //使用了未赋值的局部变量a
方法2: string[] a = new string[] { }; a[0] = "we"; MessageBox.Show(a[0]); //可以编译通过.....
解决方案:
改用List<string>吧!
方法一是没有new(没有分配空间)。
方法二是在new的时候没有指定大小,默认是0个元素,所以对其任意一个元素赋值都是越界。
在C#中,数组一般用来存放大小确定的数据。
如果数组大小未知,建议使用List<>.
List<string> a=new List<string>();
a.Add("we");
MessageBox.Show(a[0]);
同时,你可以用a.ToArray()来随时转换成string[]。
也可以List<string> b=new List<string>(a.ToArray());
将数组数据初始化进List<>。
对象是需要new的,如果不new,就不知道数组的长度。
如果本身是不定长的数组,可以用List等数据结构来保存。
string[] a = new string[] { };
a[0] = "we";
你可以在方法2中声明了a数组后,a.lengh看看a有几个元素。
另外,b = a.Split('|');
是对b重新赋值了,也就等于重新new了一个数组。
相关文章推荐
- c# vd2005 动态分配字符串数组大小问题,用ArrayList
- C# 动态创建数组,并且保持以前的数据不丢失的问题
- 搞定2个问题:C# 动态调用java webservice,Winform解析Json字符串中特殊值
- C#编程中的Image/Bitmap与base64的转换及 Base-64 字符数组或字符串的长度无效问题 解决
- 关于动态数组、静态数组转换为字符串的一些问题 - 给 "厨师" 的回复
- 在C#中解决动态计算表达式的问题(如字符串"Sin(1)+Cos(2)",执行并得出结果)
- 关于算法—— 一维字符串数组之间组合问题的C#实现
- C#拼接长字符串,根据是否查询到值来动态赋值。
- 关于动态存储分配函数的调用,在已经过排序的数组中查找及删除内容的操作,余数的分析,删除字符数组中的空格,对链表的逆置,在源字符串中查找子字符串的个数,函数指针以及函数的调用,循环赋值带来的问题以及插入
- (转)一维字符串数组之间组合问题的C#实现
- C#字符串数组排序 C#排序算法大全 C#字符串比较方法 一个.NET通用JSON解析/构建类的实现(c#) C#处理Json文件 asp.net使用Jquery+iframe传值问题
- c# 利用反射 从json字符串 动态创建类的实例 并动态为实例成员赋值
- 结构体中字符数组赋值字符串问题
- C# 字节数组初始化后转换为字符串的问题
- C#中数组数据类型字符串转double型问题
- C#中字符串与字节数组互换的几种编码问题
- c语言中,字符数组与字符串赋值问题
- 关于字符串数组赋值的问题--java.lang.NullPointerException异常
- C#动态改变数组长度,赋值
- C#有关数组内存的释放及动态数组问题