国际.TryParse 输出到一个对象数组中

本文关键字:数组 一个对象 TryParse 输出 国际 | 更新日期: 2023-09-27 18:30:37

我有一个字符串数组,我想检查字符串是否是数字,然后将其作为 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"命令,出了什么问题以及如何解决?

谢谢。

国际.TryParse 输出到一个对象数组中

使用此代码

     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;
     }

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

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

而且您的TryParse呼叫不正确。请尝试以下操作:

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

看看这个:

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());