在下面的代码中,我得到“ System.FormatException HResult Message =输入字符串的格式不正确。有人可以帮助我摆脱这种情况。谢谢
public static string Str()
{
string finalNumumber = "";
// code
// code
// code
foreach (var item in items)
{
finalNummber += item.ToString() + ",";
}
return finalNumumber; // (output here is 3,5,1,8)
}
public static void Main(string[] args)
{
string dnumber = Str();
int[] a = Array.ConvertAll(dnumber, int.Parse);
}
答案 0 :(得分:0)
假设您要在字符串上调用string.Split(',')
以将其转换为数组,那么您的代码将留下训练逗号。
I.E。实际的字符串可能是"3,5,1,8,"
您需要修剪逗号或将StringSplitOptions.RemoveEmptyEntries添加到Split()
调用中。否则,数组末尾会有一个空字符串,将无法转换。
IE。
string[] dnumber = Str().Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
答案 1 :(得分:0)
Array.ConvertAll 可以将字符串数组作为第一个参数,但是您可以传递字符串。您需要使用 Split 方法将字符串转换为字符串数组,然后将该数组传递给 Array.ConvertAll 。
public static void Main(string[] args)
{
string dnumber = Str();
string[] strArray = dnumber.Split(',');
int[] a = Array.ConvertAll(strArray, int.Parse);
}
答案 2 :(得分:0)
三种方法来做自己想要的事
public static void Main(string[] args)
{
string dnumber = Str();
string[] array = dnumber.Split(',', StringSplitOptions.RemoveEmptyEntries);
int[] v1 = Array.ConvertAll(array, s => int.Parse(s));
int[] v2 = Array.ConvertAll(array, int.Parse);
int[] v3 = array.Select(int.Parse).ToArray();
}