如何在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);