VB.NET-Quellcode
- Imports System.Runtime.CompilerServices
- Imports System.Text
- Namespace System.IO
- Public Module SystemIOX
- <Extension(), DebuggerStepThrough()> _
- Public Function ReadLines(fi As FileInfo, Optional encoding As Encoding = Nothing) As IEnumerable(Of String)
- Return IO.File.ReadLines(fi.FullName, If(encoding, encoding.Default))
- End Function
- End Module
- End Namespace
Dann ist diese Extension überall verfügbar, wo FileInfo verfügbar ist (das Beispiel gibt die Datei - falls vorhanden - zeilenweise als Messagebox aus):
ReadLines
kein String
-Array zurückgibt, sondern ein IEnumerable(Of String).
Ein Array belegt nämlich Speicherplatz für die komplette Datei, während .ReadLines
nur einen internen Puffer belegt, und halt die aktuelle Zeile.Ups! - die ForEach-Extension braucht ihr für dieses spezielle Sample ja auch!
VB.NET-Quellcode
- Imports System.Runtime.CompilerServices
- Namespace System.Collections.Generic
- <Microsoft.VisualBasic.HideModuleName()> _
- Public Module CollectionX
- <DebuggerStepThrough(), Extension()> _
- Public Sub ForEach(Of T)(items As IEnumerable(Of T), Action As Action(Of T))
- For Each itm In items
- Action(itm)
- Next
- End Sub
- End Module
- End Namespace
Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „ErfinderDesRades“ ()