我有:
string[] strArray = new string[3] { "1", "2", "12" };
我想要这样的东西
int[] intArray = Convert.toIntArray(strArray);
我在C#.net v2.0上工作,我不想写很多代码。
我该怎么做?
谢谢。
答案 0 :(得分:40)
您可以使用Array.ConvertAll
方法来“将一种类型的数组转换为另一种类型的数组。”
int[] intArray = Array.ConvertAll(strArray,
delegate(string s) { return int.Parse(s); });
(编辑:使用这种技术,类型推理工作正常。或者,您也可以使用Marc Gravell的答案中的隐式方法组转换,但您必须明确指定泛型类型参数。)
使用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);
答案 1 :(得分:16)
int[] intArray = Array.ConvertAll(strArray, int.Parse);
或在C#2.0中(通用类型推断较弱):
int[] intArray = Array.ConvertAll<string,int>(strArray, int.Parse);
答案 2 :(得分:2)
using System.Collections.Generic;
int Convert(string s)
{
return Int32.Parse(s);
}
int[] result = Array.ConvertAll(input, new Converter<string, int>(Convert));
或
int[] result = Array.ConvertAll(input, delegate(string s) { return Int32.Parse(s); })
答案 3 :(得分:1)
Array.ConvertAll Generic Method
将一种类型的数组转换为另一种类型的数组。
答案 4 :(得分:1)
如果你确定,所有项目都是可以解析的,这就可以解决问题:
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]);
}
答案 5 :(得分:0)
这样的东西,但是你想要保持一些错误检查(我的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);