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

时间:2010-12-08 13:22:17

标签: c# .net-2.0

我有:

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

我想要这样的东西

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

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

我该怎么做?

谢谢。

6 个答案:

答案 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);