.Net 4 bringt unter anderem einige nette kleinere Neuerungen in der Base Class Library (BCL) mit sich. Eine Neuerung ermöglicht das Abfragen von Dateien und Dateiinhalten via LINQ. Das folgende Beispiel ermittelt beispielsweise sämtliche Zeilen aller Csv-Dateien des aktuellen Verzeichnisses, bei denen in der ersten Spalte (vor dem ersten Strichpunkt) der Wert 1 steht und schreibt die Ergebnismenge in die Datei result.txt .
var info =
from file in Directory.EnumerateFiles(".", "*.csv")
from line in File.ReadLines(file)
where line.Split(';')[0] == "1"
select file + ": " + line;
File.WriteAllLines("result.txt", info);
Möglich wird dies, durch die Methode File.ReadLines , welche ein IEnumerable<String> mit den Zeilen des angegebenen Textfiles zurückliefert sowie durch die Methode EnumerateFiles von Directory bzw. DirectoryInfo , welche ein IEnumerable mit den Dateien des angegebenen Verzeichnisses ermittelt. Diese Methoden haben auch den Vorteil, dass nicht sämtliche Informationen gleichzeitig in den Hauptspeicher geladen werden müssen, wie es beispielsweise bei der Methode File.ReadAllLines , welche ein String-Array mit allen Zeilen eines Textfiles zurückliefert, der Fall ist.