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

C# 如何在C和.NET 2.0中将字符串[]转换为int[]?,c#,.net-2.0,C#,.net 2.0,我有: string[] strArray = new string[3] { "1", "2", "12" }; 我想要这样的东西 int[] intArray = Convert.toIntArray(strArray); 我在C.NETV2.0中工作,我不想写太多代码 我该怎么做 谢谢。您可以使用此方法,将一种类型的数组转换为另一种类型的数组 int[] intArray = Array.ConvertAll(strArray,

我有:

string[] strArray = new string[3] { "1", "2", "12" };
我想要这样的东西

int[] intArray = Convert.toIntArray(strArray);
我在C.NETV2.0中工作,我不想写太多代码

我该怎么做

谢谢。

您可以使用此方法,将一种类型的数组转换为另一种类型的数组

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]);
或:


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

当您确定所有项目都是可分析的时,这将实现以下技巧:

using System.Collections.Generic;

int Convert(string s)
{
    return Int32.Parse(s);
}

int[] result = Array.ConvertAll(input, new Converter<string, int>(Convert));
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]);
}

类似这样,但您希望保留一点错误检查my 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;
}
或者在C 2.0中,泛型类型推断较弱:

int[] intArray = Array.ConvertAll<string,int>(strArray, int.Parse);

.Net 3.0+谷歌用户版:int[]intArr=strArr.Selectint.Parse.ToArrayembarassing commentremoved@Callum:见;另外,对于可能重复的Int32任务,您的代码不是最好的。Parse不能返回null-它返回int.Int32.Parse返回结构值类型的Int32,因此!=空值总是经过。这行代码生成了一个关于我所说内容的警告。
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]);
}
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);
int[] intArray = Array.ConvertAll(strArray, int.Parse);
int[] intArray = Array.ConvertAll<string,int>(strArray, int.Parse);