首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#定义数组时,用指定长度吗?解决办法

2012-04-07 
C#定义数组时,用指定长度吗?我在一个类中,做了个方法,判断字符串内容方面的,希望返回某几个字符串,我定义

C#定义数组时,用指定长度吗?
我在一个类中,做了个方法,判断字符串内容方面的,希望返回某几个字符串,我定义如下

C# code
public bool isSpecialCharExist(String testStr, out String [] resultValue)        {            //resultValue =new string[]{"",""};一般是返回两个字符串,所以可以给两个空串,然后下面引用的时候就没有问题            resultValue = new string[] {  };//这样不好用,提示下标超界            String myStrForSpecial = testStr;            int flagSpecial = myStrForSpecial.IndexOf("G");            if (flagHdUnit != -1)            {                resultValue [0] = myStrForHdUnit.Substring(0,myStrForHdUnit.IndexOf("H"));//这样引用,会提示下标超界,但是,如果上面给数组 resultValue赋两个"","",就不提示。                resultValue [1] = myStrForHdUnit.Substring(myStrForHdUnit.IndexOf("H"));//这样引用,会提示下标超界,但是,如果上面给数组 resultValue赋两个"","",就不提示。                return true;            }            else            {                return false;            }        }


我在其它需要判断的地方,使用这个类的方法,
定义的时候,并没有指定长度,但是却可以正常运行

C# code
 SpecialCharExist mySCE = new SpecialCharExist();                            String [] myRes =new string[]{};                            bool flagEC = mySCE.isSpecialCharExist(myNeedTestStr, out myRes);                            if (flagEC == true)                            {                                //执行操作;                            }


求解,这是什么原因呢?

[解决办法]
数组要么指定长度,要么给出初始化集合,相当于隐式提供长度。

最好使用List<string>,你可以不断添加元素,最后再ToArray()
类似这样:
C# code
var list = new List<string>();list.Add("item 1");list.Add("item 2");string[] result = list.ToArray();
[解决办法]
数组也是要指定的
[解决办法]
LZ你那样是隐式指定了长度了,编译器可以通过你{}中的内容推断出长度
[解决办法]
数组必须要指定长度
用泛型方式可以不指定长度 List<int> ls = new List<int>;

[解决办法]
探讨

您说的List也是类似于数组吗?可以不用长度?引用:
数组要么指定长度,要么给出初始化集合,相当于隐式提供长度。

最好使用List<string>,你可以不断添加元素,最后再ToArray()
类似这样:

C# code
var list = new List<string>();
list.Ad……

热点排行