我正在使用Collections.Generic.IEnumerable(Of String)函数来获取文件的第一行和最后一行。
这样可行,但我想要做的是跳过任何包含#字符的行。
我的代码:
Dim Lines As Collections.Generic.IEnumerable(Of String) = File.ReadLines(strFileName)
Line0 = Lines.FirstOrDefault
LineN = Lines.LastOrDefault
lowestFreq = Line0.Split(New Char() {","c})
highestFreq = LineN.Split(New Char() {","c})
lowFreq = lowestFreq(0)
highFreq = highestFreq(0)
我尝试了if / if not等的变体,但我似乎无法找到解决方案。
我的文件看起来像这样(某些文件的注释行多于其他文件)
# a comment
# the date
#
# some other stuff
12.599,3.513
15.874,4.246
20.000,4.884
25.198,5.912
31.748,6.063
40.000,7.020
50.397,6.267
63.496,7.251
80.000,6.875
etc..
#只会出现在文件的顶部。
答案 0 :(得分:0)
改变这个:
Line0 = Lines.FirstOrDefault
到此:
Line0 = Lines.SkipWhile(Function(s) s.StartsWith("#")).FirstOrDefault()
那就是说,通过这样做,你将枚举文件的那些行两次。鉴于您需要最后一行,因此无论如何都必须读取整个文件,您应该拨打ReadAllLines
而不是ReadLines
。