如何在C#和.NET 2.0中将String 转换为int ?

我有 :

string[] strArray = new string[3] { "1", "2", "12" }; 

我想要这样的东西

 int[] intArray = Convert.toIntArray(strArray); 

我在C#.net v2.0上工作,我不想写很多代码。

我怎样才能做到这一点?

谢谢。

您可以使用Array.ConvertAll方法来“将一种类型的数组转换为另一种类型的数组”。

 int[] intArray = Array.ConvertAll(strArray, delegate(string s) { return int.Parse(s); }); 

(编辑:使用这种技术,类型推断工作正常。或者,您也可以使用Marc Gravell的答案中的隐式方法组转换,但您必须明确指定generics类型参数。)

使用for循环:

 int[] intArray = new int[strArray.Length]; for (int i = 0; i < strArray.Length; i++) intArray[i] = int.Parse(strArray[i]); 

为了完整起见,在C#4.0中执行此操作的惯用方法如下:

 var intArray = strArray.Select(int.Parse).ToArray(); 

要么:

 //EDIT: Probably faster since a fixed-size buffer is used var intArray = Array.ConvertAll(strArray, int.Parse); 
 int[] intArray = Array.ConvertAll(strArray, int.Parse); 

或者在C#2.0中(generics类型推断较弱):

 int[] intArray = Array.ConvertAll(strArray, int.Parse); 
 using System.Collections.Generic; int Convert(string s) { return Int32.Parse(s); } int[] result = Array.ConvertAll(input, new Converter(Convert)); 

要么

 int[] result = Array.ConvertAll(input, delegate(string s) { return Int32.Parse(s); }) 

Array.ConvertAll通用方法

将一种类型的数组转换为另一种类型的数组。

如果您确定,所有项目都是可以解析的,这将解决问题:

 string[] strArray = new string[3] { "1", "2", "12" }; int[] intArray = new int[strArray.Length]; for (int i = 0; i < strArray.Length; i++) { intArray[i] = int.Parse(strArray[i]); } 

像这样的东西,但你想保持一些错误检查(我的if是非常蹩脚,就像例子):

 static private int[] toIntArray(string[] strArray) { int[] intArray = new int[strArray.Length]; for (int index = 0; index < strArray.Length; index++) { intArray[index] = Int32.Parse(strArray[index]); } return intArray; } 

并像这样使用它:

 string[] strArray = new string[3] { "1", "2", "12" }; int[] interi = toIntArray(strArray);