关于C#数组的问题

C#声明数组时需要事先定义长度吗?
还是可以一点点加元素进去无所谓的
还有如何判断一个数组内是否包含某个字符串?

数组声明需要预先定义长度,可变长度的数组用arraylist的定义,判断数组内部是否包含某个字符串分两种情况。一种是对于数组内部每个元素的判断,直接遍历数组每个元素然后用indexof()方法即可判断。另外一种是对于整个数组而言的,这需要先把数组内部所有元素拼接成一个字符串,然后再用indexof()方法进行判断即可。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-09-27
需要指明数组的长度
如果想定义一个长度可变的数组,可以先定义一个
List,向其添加元素后使用它的ToArry方法,例如:
List<string> list = new List<string>();
list.Add("ss");
string[] arry = list.ToArray();
这样就不用规定它的长度了

判断数组内是否半酣某个字符串
可以用Linq,也可以自己遍历
bool b = false;
foreach(string s in arry)
{
if (s.Contains("要查找的字符串"))
{
b = true;
break;
}
}本回答被提问者采纳
第2个回答  2010-09-28
c#中,在定义数组时,必须指明数组的长度,如:int[]array=new int[10];
数组是不可以动态改变大小的,就是说你在分配内存的时候分配了多大就只能在这个范围内添加数据,就像例子中的10,你规定了10个位置,就不能加入超过10个的数据。

但是,若你想用可变长的数组,则可以定义为ArrayList 类型(集合),如:ArrayList arr=new ArrayList ();集合不需要规定长度,在一定范围内可以随意加入任何类型的数据(object)。你所说的一点点加进去无所谓的就是集合这种数据类型可以。
需要添加元素时,arr.Add(param);

判断一个数组内是否包含某个字符串,可以一个一个遍历数组内数据,找到则输出。 Array.IndexOf<string>( elements, "xxx" ) != -1
第3个回答  2010-09-28
C#中的集合有弱类型和强类型之分;
弱类型:如:普通数组,ArryList,HashTable;
强类型:泛型集合,也是微软推荐使用的一种集合,如:List<>,Dictionary<>
区别在于弱类型需要提供长度,且长度固定,日后维护和拓展不方便。
而强类型可以自动拓展其长度。
你问的是普通的一位数组,它在定义是需要制定长度,且不能更改。如果长度已满,则或发生数组越界等异常,用数组的下标即索引可以判断一个数组中是否存在某个元素!

以上说了那么多无非就是建议你使用泛型集合。希望对你有帮助!
第4个回答  2010-09-26
c#中,在定义数组时,需要指明数组的长度,
如:int[]arr=new int[10];
当然,如果数组的长度是由变量确定的,你可以在变量的值确定后定义为:
int n;
......
int[]arr=new int[n];

但是,若你想用可变长的数组,则可以定义为ArrayList 类型,如:ArrayList arr=new ArrayList ();
需要添加元素时,arr.Add(param);
相似回答