.NET Usergroup Rhein-Neckar: Nächstes Treffen am 22.02.2011 zum Thema “C# Advanced mit Lambda, LINQ & Co.”

Februar 17, 2011

Der BASTA! Sprecher Rainer Stropek hat sich kurzfristig zu einem Abstecher nach Mannheim bereiterklärt, um dort am kommenden Dienstag (22.02.2011) die .NET Usergroup Rhein-Neckar zu besuchen. Das Thema lautet:

C# Advanced mit Lambda, LINQ & Co.

Sprecher: Rainer Stropek (software architects)

Abstract:
Selbst erfahrene und hartgesottene C# Entwickler meinen manchmal, bei Code mit vielen Lambda Expressions und LINQ Ausdrücken eine Fremdsprache vor sich zu haben. Was steckt hinter den, auf den ersten Blick fremdartigen, Sprachelementen? Ist LINQ wirklich nur etwas für Datenbankentwickler? Was haben diese Sprachfeatures für Auswirkungen auf Lesbarkeit, Wartbarkeit und Performance? Rainer Stropek stellt in der Session die Entstehungsgeschichte von Lambdas und LINQ dar und erklärt daran, in welchen Situationen sie die Softwareentwicklung mit C# radikal verbessern kann.

Anmeldung und alle weiteren Infos über das zugehörige XING-Event.

CU there
Kostja


Deferred Query Evaluation – Verzögerte Auswertung von LINQ Abfragen

März 31, 2009

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


Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.