2

我有一个字符串数组,我想检查一个字符串是否是一个数字,然后将它作为一个 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

4 回答 4

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;

     }
于 2013-09-09T14:18:25.820 回答
3

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

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

而且你的TryParse电话不正确。尝试以下操作:

int.TryParse(parametersStringArray[i].ToString(), out parametersArray[i]);
于 2013-09-09T14:16:38.720 回答
1
int res;
if (int.TryParse(parametersStringArray[i], out res)) {
    parametersArray[i] = res;
}
else {
Console.WriteLine("Not a number at index {0}", i);
}
于 2013-09-09T14:17:47.677 回答
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());
于 2013-09-09T14:27:07.493 回答