使用collections.generic.ienumerable(字符串)

时间:2016-07-03 15:23:35

标签: arrays vb.net

我正在使用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..

#只会出现在文件的顶部。

1 个答案:

答案 0 :(得分:0)

改变这个:

Line0 = Lines.FirstOrDefault

到此:

Line0 = Lines.SkipWhile(Function(s) s.StartsWith("#")).FirstOrDefault()

那就是说,通过这样做,你将枚举文件的那些行两次。鉴于您需要最后一行,因此无论如何都必须读取整个文件,您应该拨打ReadAllLines而不是ReadLines