1
ファイルの最初と最後の行を取得するには、Collections.Generic.IEnumerable(Of String)関数を使用しています。collections.generic.ienumerable(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)
私がもし/いない場合などのバリエーションを試してみましたが、私はちょうど解決策を見つけるように見えることはできません。
私のファイルは、(いくつかのファイルが他のものよりコメント行を持っている)
# 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..
次のようになります。
#は、ファイルの先頭でのみ発生します。
Linq where句を使用して#行を除外することができます。 – Codexer
'File.ReadLines(sFile).Where(Function(q)StartsWith("# ")= False)' – Plutonix
Plutonixは正しいトラック。その 'Where'節を' lines'変数の宣言に使用してください。そして 'lines'に対して' FirstOrDefault'と 'LastOrDefault'を呼び出すと、それらは両方ともフィルタリングされます。述語引数を取る 'FirstOrDefault'と' LastOrDefault'のオーバーロードもあるので、 'Where'は実際には必要ありません。 – JamesFaix