ファイルを閉じることができません

タグの編集
投稿者 ミツザネェ  (社会人) 投稿日時 2015/12/12 10:10:20
いったんCSVファイルを閉じてから開きなおそうと思ったのですが、
Dim File = File.ReadLines(Me.File, Encoding.GetEncoding("Shift_JIS")).Skip(Me.Line).FirstOrDefault()


File.close()
と打ち込んだところ、closeはstringのメンバーではありません。とエラーが表示されました。
どうすればファイルを閉じられるようになりますか?
投稿者 YuO  (社会人) 投稿日時 2015/12/12 14:20:31
System.IO.File.ReadLineで開かれたファイルは,その戻り値のIDisposable.Disposeを呼び出したタイミングで閉じられます。
そして,System.Linq.Enumerable.FirstOrDefaultはその第一引数がIListでない場合はIDisposable.Disposeを呼び出すため,
> Dim File = File.ReadLines(Me.File, Encoding.GetEncoding("Shift_JIS")).Skip(Me.Line).FirstOrDefault()
の実行が終わった時点でファイルは閉じられます。

ref) すべてReference Source
・System.IO.File.ReadLine(string, Encoding)
http://referencesource.microsoft.com/#mscorlib/system/io/file.cs,cd7b5c3a06a5d897
・System.IO.ReadLinesIterator.CreateIterator(string, Encoding)
http://referencesource.microsoft.com/#mscorlib/system/io/ReadLinesIterator.cs,f7a0a9a55d7c9638
・System.IO.ReadLinesIterator..ctor (string, Encoding, StreamReader)
http://referencesource.microsoft.com/#mscorlib/system/io/ReadLinesIterator.cs,e55db6d3fed9e8eb
・System.IO.Iterator(Of TSource).Dispose()
http://referencesource.microsoft.com/#mscorlib/system/io/filesystemenumerable.cs,9cfba90c99146d40
・System.IO.ReadLinesIterator.Dispose (bool)
http://referencesource.microsoft.com/#mscorlib/system/io/ReadLinesIterator.cs,d66f68d0af8f47af
・System.Linq.Enumerable.FirstOrDefault(Of TSource) (IEnumerable(Of TSource))
http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,8087366974af11d2
投稿者 ミツザネェ  (社会人) 投稿日時 2015/12/15 13:23:47
ありがとうございます!できました!