{{1}}
任何人都可以帮助我继续使用这个块的FormatException,“它是日期时间格式,取日期第一个例外”。它是从空格分隔的文本文件中读取的字符串。
答案 0 :(得分:2)
试试这个:
List<int> resultList = File
.ReadLines(data) // you've got IEnumerable<string>
.Select(line => line.Split()) // -/- IEnumerable<string[]>
.Select(ietms => int.Parse(items[0])) // -/- IEnumerable<int>
.ToList(); // finally, it's List<int>
我认为这是该行的 1st 项目,应该转换为int
:int.Parse(items[0])
,如果将0
更改为正确的索引,必需的。
尝试避免使用ReadAllLines
赞成ReadLines
:你不会将所有文件(可能很长)读入中的数组一个人去
答案 1 :(得分:1)
问题是ReadAllLines会返回string[]
。如果您在此类对象上调用ToString
,则会将namespace.classname
作为字符串。所以在你的情况下:
System.String []
拆分此字符串结果定义不是数字。但是在进入的string[]
中,即:
System.String []
如果您的文件只有一行带有空格分隔数字,我建议使用File.ReadAllText。它将读取文件的整个内容并将其作为1 string
返回。通过这种方式,您几乎可以使用您的代码。
string aresultlist = File.ReadAllText(data);
var bresultlist = aresultlist.Split().Select(s => Convert.ToInt32(s));
List<int> resultlist = bresultlist.ToList();
编辑:
根据Gilad Green的建议,您可能在文件中包含无法解析为数字的内容,并会引发异常。为避免这种情况,您可以关注this example