| Bernhard's profileBernhard Grojer - BlogPhotosBlogLists | Help |
|
|
January 27 Generic Delegates: Func<T>Im letzten Posting habe ich die Möglichkeiten beschrieben einen Delegate als Paramter zu akzeptieren. 1: ... Demo1.GetDemos( 2: delegate(Demo d) 3: { 4: return (d.Active && d.Name == "Test"); 5: } 6: );
1: Func<int, bool> f = (i) => i == 1; 2: var res = f(10);Variable “f” beinhaltet nun unsere eigentliche Logik (Zuweisung über Lambda-Schreibweise). Dessen Aufruf ist dann denkbar einfach und natürlich können wir auch hier wieder Funktionen definieren die einen Parameter Func<T> nimmt. January 26 Predicate<T> in C# 3.0
1: public static class Demo1 2: { 3: public static List<Demo> GetDemos(Predicate<Demo> p) 4: {5: var lst = GetList(); //Ladet eine Liste die gefiltert werden soll 6: foreach (v i in lst) 7: {8: if (p(i)) 9: yield return i; 10: } 11: } 12: }Aufruf: 1: var lst = Demo1.GetDemos(2: delegate(Demo d) 3: {4: return (d.Active && d.Name == "Test"); 5: } 6: );Und somit sollten auch die Technolgien die hinter LINQ Stecken wieder etwas January 23 LINQ: JoinIn einem Linq Model kann man ein “Join” relativ einfach hinbekommen wenn die Einzelnen Elemente bereits Beziehungen haben. (Stichwort EntitySet<T>) 1: var query = from o in DB.Orders 2: select new 3: { 4: Name = o.Customer.CompanyName, 5: OrderID = o.OrderID 6: };Doch oftmals gibts genau diese Beziehung zwischen den Objekten nicht (hier zwischen Customer u. Order). 1: var query = from o in DB.Orders 2: join c in DB.Customers on o.CustomerID equals c.CustomerID 3: select new 4: { 5: Name = c.CompanyName, 6: OrderID = o.OrderID 7: };Download Sample: LinqJoin.zip VSONE – München – 10. bis 13. Feb. 2009
Delegates, anonyme Methoden und Lambda Expression waren Ihnen immer schon ein Rätsel? Sie wollen mit weniger Code MEHR tun? Holen Sie sich noch einen der letzten Plätze. January 20 Live MeshWindows Live Mesh, zu finden unter https://www.mesh.com/ ist eine flexible Möglicheit Daten über mehrere Systeme zu synchronisieren. zB Favoriten können damit mit 2 klicks a) im Internet verfügbar gemacht werden Im Moment ist das Produkt noch Beta (und bietet 5 GB kostenlosen Speicher!) Wie findet Ihr das Teil? January 01 HAPPY NEW YEAR
|
|
|