Nachdem er als Entwurf ca. 15 Monate vor sich hin geschlummert hat, soll dieser Eintrag nun doch noch mal veröffentlicht werden
Ein interessanter Aspekt bei der Definition von LINQ-Abfragen ist der tatsächliche Zeitpunkt der Ausführung. In der Regel ist dies nicht bei der Query Definition, sondern beim Zugriff auf das Ergebnis der Abfrage mit „foreach“ oder über “GetEnumerator“ in Kombination mit „MoveNext“.
Folgender Code
var strMeth = from m in typeof(string).GetMethods()
orderby m.name
select new { m.Name, m.IsStatic };
definiert also nur eine Abfrage, ohne dass diese tatsächlich ausgeführt wird.
Falls erforderlich, dann lässt sich aber die sofortige Ausführung durch eine kleine Änderung erzwingen:
var strMeth = (from m in typeof(string).GetMethods()
orderby m.name
select new { m.Name, m.IsStatic }).ToList();
Durch das Ergänzen von „.ToList()“ erreicht man also die sofortige Auswertung einer LINQ Abfrage. Gleiches gilt übrigens auch für „.ToArray()“
Bis bald
Kostja
Verfasst von kostjaklein 