我正在尝试从文本框中删除数字中的任何空格(txtAllNum),然后再将它们转换为数组。但是在尝试将它们转换为数组时出现了Input string was not in a correct format.
错误。
请建议。
(将插入的数字列表在开头已经有空格,所以我不能通过验证拒绝它们)
string allNumStr = txtAllNum.Text;
allNumStr = allNumStr.Replace(" ", "");
var intAry = allNumStr
.Split(new string[] { Environment.NewLine },
StringSplitOptions.RemoveEmptyEntries)
.Select(s => Int64.Parse(s));
以下是示例输入数据(它们在开头有空格)
95949323114
9592099619个
9595173327个
95943054737
95943090230
95991046911
9595028775个
95943173776
95973494329
95973082074
95973000239
答案 0 :(得分:1)
根据您的示例,是否会提供简单的TrimStart()
call帮助?
string allNumStr = txtAllNum.Text;
allNumStr = allNumStr.Replace(" ", "");
var intAry = allNumStr
.Split(new string[] { Environment.NewLine },
StringSplitOptions.RemoveEmptyEntries)
.Select(s => Int64.Parse(s.TrimStart()));
答案 1 :(得分:1)
添加一个应该做的诀窍。我编译了这个并对其进行了测试,它同时考虑了前导和尾随空白以及空白条目。
此外,这假设.Net 4(string.IsNullOrWhiteSpace)。如果使用更少的东西,你需要更改where语句。
string allNumStr = txtAllNum.Text;
var intAry = allNumStr
.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
.Where(s => !string.IsNullOrWhiteSpace(s))
.Select(s => Int64.Parse(s.Trim()));