Mit LINQ ist nicht immer nur LINQ to SQL gemeint. Es lassen sich auch ganz andere Dinge damit erledigen. In diesem Beitrag wird erklärt, wie wie Hilfe von LINQ Daten aus einer Textdatei mit komma-separierten Trennzeichen (CVS beispielsweise) in einem DataGridView zur Anzeige gebracht werden können. Um dies zu erreichen, muss unter anderem das Schlüsselwort yield verwendet werden. Wir benötigen nämlich die Möglichkeit, durch die Daten der angegebenen Textdatei zu iterieren - zeilenweise. Hierfür wird folgende Methode verwendet:
Dem zugrunde liegt die Datei Adressen.txt, die folgende Daten zur Verfügung stellt:
Norbert;Eder;Irgendeine Strasse 1;10000;Irgendein Ort
Klaus;Mustermann;Mustermann Strasse 1;10000;Irgendein Ort
Für die Erstellung der notwendigen Objekte und der damit möglichen Anzeige der Daten wird nun folgender Codeblock verwendet:
if (File.Exists("Adressen.txt"))
{
StreamReader sr = new StreamReader("Adressen.txt");
var addressList = from field in LoadFile(";", sr)
select new
{
Firstname = field[0],
Lastname = field[1],
Street = field[2],
PostalCode = field[3],
City = field[4],
};
List<object> tempList = new List<object>();
foreach (var address in addressList)
tempList.Add(address);
this.DataGridView.DataSource = tempList;
}
Mittels LINQ wird quasi ein Select auf die von LoadFile zurückgegebenen Enumerations-Werte ausgeführt und in eine Liste geschrieben. Anschließend werden die Informationen zur Anzeige gebracht.