国际.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"命令,出了什么问题以及如何解决?
谢谢。
使用此代码
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());