Presentation is loading. Please wait.

Presentation is loading. Please wait.

LINQ to objects. Datenmodell Zugriffsklasse Einfache Abfrage IEnumerable booksList = SampleDataAccess.DBooks.Select(b => b); Select(...) Book => object.

Similar presentations


Presentation on theme: "LINQ to objects. Datenmodell Zugriffsklasse Einfache Abfrage IEnumerable booksList = SampleDataAccess.DBooks.Select(b => b); Select(...) Book => object."— Presentation transcript:

1 LINQ to objects

2 Datenmodell

3 Zugriffsklasse

4 Einfache Abfrage IEnumerable booksList = SampleDataAccess.DBooks.Select(b => b); Select(...) Book => object (=Book) IEnumerable booksList = from b in SampleDataAccess.DBooks select b;

5 Einzelne Felder selektieren var liste = SampleDataAccess.DBooks.Select(b => new { titel = b.Title, isbn = b.Isbn }); Select(...) Book => object var liste = from b in SampleDataAccess.DBooks select new { titel = b.Title, isbn = b.Isbn };

6 WHERE-Klausel var liste = SampleDataAccess.DBooks.Where(b => b.PageCount > 200).Select(b => new { titel = b.Title, pages = b.PageCount }); Where(...) Book => bool

7 WHERE-Klausel var liste = from b in SampleDataAccess.DBooks where b.PageCount > 200 select new { titel = b.Title, pages = b.PageCount };

8 Select Many var liste = SampleDataAccess.DBooks.Where(b => b.PageCount > 100).SelectMany(b => b.Authors).Select(a => a.LastName).Distinct(); Where(…): Book => bool SelectMany(…) Book => object Select(…) Author => object

9 SelectMany var liste = (from b in SampleDataAccess.DBooks where b.PageCount > 100 from a in b.Authors select a.LastName).Distinct();

10 OrderBy / orderby var liste = from b in SampleDataAccess.DBooks orderby b.PageCount descending select new { b.Title, b.PageCount }; var liste = SampleDataAccess.DBooks.OrderBy(b => b.PageCount).Select(b => new { b.Title, b.PageCount }); OrderBy(…) book => IComparable / Zahl OrderByDescending(…)

11 GroupBy var liste2 = SampleDataAccess.DBooks.GroupBy(b => b.Publisher).Select(grp => new { Publisher = grp.Key, Count = grp.Count() }); GroupBy(…) Book => object (wonach wird gruppiert); liefert eine Collection von IGrouping-Objekten Select(…) IGrouping => object

12 group by var liste = from b in SampleDataAccess.DBooks group b by b.Publisher into bgroup select new { Publisher = bgroup.Key, Count = bgroup.Count() };

13 join var liste = from b in SampleDataAccess.DBooks join r in SampleDataAccess.DReviews on b equals r.Book select new { b.Title, r.Comments };

14 Join var liste2 = SampleDataAccess.DBooks.Join(SampleDataAccess.DReviews, // 2. Collection b => b, // Selector von 1. Collection r => r.Book, // Selector von 2. Collection (b, r) => new { b.Title, r.Comments } // Selektion );

15 Mengen-Operationen liste.Distinct() liste1.Union(liste2) liste1.Intersect(liste2) liste1.Except(liste2)

16 Aggregat-Operationen liste.Count() / liste.LongCount() liste.Sum() / liste.Sum(elem => attr) liste.Min() / liste.Min(elem => attr) liste.Max() / liste.Max(elem => attr) liste.Average() / liste.Average(elem => attr)

17 Quantifizierungs-Operationen liste.Any() / liste.Any(elem => bedingung) liste.All(elem => bedingung)

18 Aufteilungs-Operationen liste.Take(Zahl) liste.TakeWhile(elem => bedingung) liste.Skip(Zahl) liste.SkipWhile(elem => bedingung)

19 Element-Operationen liste.First() / liste.First(elem => bedingung) liste.Last() / liste.Last(elem => bedingung) liste.Single() / liste.Single(el => bed) liste.ElementAt(index) FirstOrDefault, LastOrDefault, …


Download ppt "LINQ to objects. Datenmodell Zugriffsklasse Einfache Abfrage IEnumerable booksList = SampleDataAccess.DBooks.Select(b => b); Select(...) Book => object."

Similar presentations


Ads by Google