int.TryParse到一个对象数组

时间:2013-09-09 14:15:18

标签: c# arrays

我有一个字符串数组,我想检查字符串是否为数字,然后将其作为int放在对象数组中。

(对于那些问你为什么是对象数组的人,因为我也要检查字符和其他东西)

我有这个:

Console.WriteLine("Enter parameters for the function with a space in between each parameter: "); String stringParameters = Console.ReadLine();
String[] parametersStringArray = stringParameters.Split(' ');
Object[] parametersArray = new Object[parametersStringArray.Length];

for (int i = 0; i < parametersStringArray.Length; i++)
{
    int.TryParse(parametersStringArray[i], out int.Parse(parametersArray[i]));
}

它没有编译,我不熟悉'out'命令,有什么问题,我该如何解决?

感谢。

4 个答案:

答案 0 :(得分:5)

使用此代码

     Console.WriteLine("Enter parameters for the function with a space in between each parameter: "); String stringParameters = Console.ReadLine();
     String[] parametersStringArray = stringParameters.Split(' ');
     Object[] parametersArray = new Object[parametersStringArray.Length];

     for (int i = 0; i < parametersStringArray.Length; i++)
     {
        int tmp;
        if (int.TryParse(parametersStringArray[i], out tmp))
           parametersArray[i] = tmp;

     }

答案 1 :(得分:3)

首先,您的目标数组必须是int[],而不是Object[]

int[] parametersArray = new int[parametersStringArray.Length];

您的TryParse来电不正确。请尝试以下方法:

int.TryParse(parametersStringArray[i].ToString(), out parametersArray[i]);

答案 2 :(得分:1)

int res;
if (int.TryParse(parametersStringArray[i], out res)) {
    parametersArray[i] = res;
}
else {
Console.WriteLine("Not a number at index {0}", i);
}

答案 3 :(得分:0)

看看这个:

public static int? TryParse(string s)
{
    int result;
    if (int.TryParse(s, out result))
    {
        return result;
    }
    return null;
}

var res = new string[] { "1", "2", "a" }
    .Select(x => TryParse(x).GetValueOrDefault());