LINQ = language integrated query: typsichere Verarbeitung von Daten aus
Wesentliche programmiersprachliche Neuerungen:
Beispiel:
using System; using System.Linq; using System.Collections.Generic; using System.Text; namespace ConsoleApplication4 { class Student { public string name; public string vorname; public int id; } static class Program { // Erweiterungsmethode ( extension method ) static string Form (this Student s){ return s.vorname + s.name; } static void Main(string[] args) { int x = 4; var y = x * x; // Typinferenz Console.WriteLine(y); string[] cities = { "leipzig", "paris", "athen" , "london" }; // embedded SQL IEnumerable<string> result1 = from c in cities where c.StartsWith ("l") orderby c.Length select c; // Übersetzung in Methodenaufrufe foreach (string stadt in cities .Where(c => c.StartsWith("l")) .OrderBy(c => c.Length) ) { Console.WriteLine(stadt); } Student[] sg = { new Student () { id=3, name = "foo", vorname = "bar" } }; // Erweiterungsmethode benutzen Console.WriteLine(sg[0].Form()); // anonyme Klasse (als Resultattyp) var result2 = from s in sg select new { id = s.id, name = s.name }; foreach (var s in result2) { Console.WriteLine(s); } Console.ReadLine(); } } }
Literatur:
Mössenböck, Kapitel 22