C#爲字符串數組動態賦值的問題

今天才發現一個很簡單很基本的問題,就是怎麼也不能正確。數組

方法1: string[] a; a[0] = "we";MessageBox.Show(a[0]); //使用了未賦值的局部變量a數據結構

方法2: string[] a = new string[] { }; a[0] = "we"; MessageBox.Show(a[0]); //能夠編譯經過.....spa

解決方案:對象

改用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<>。string

對象是須要new的,若是不new,就不知道數組的長度。
若是自己是不定長的數組,能夠用List等數據結構來保存。it

string[] a = new string[] { };
a[0] = "we";
你能夠在方法2中聲明瞭a數組後,a.lengh看看a有幾個元素。編譯

另外,b = a.Split('|');
是對b從新賦值了,也就等於從新new了一個數組。
變量

相關文章
相關標籤/搜索