LINQ Basics
Learn how to leverage LINQ (Language Integrated Query) of C# to sort, filter, group content-items. This demo uses the following data in app:
- Persons - various people who are used in the data. A person can also have one or many favorite books.
- Books - books people wrote or contributed to. Books have authors and
Some notes before we start
All our code uses some general stuff explained here:
- to enable LINQ commands we always need:
@using System.Linq
- most of the code starts by retrieving a list of Books and Authors. This is done using:
App.Data.GetStream("Books")
The samples can differ based on your Razor base class or if you're running an old version.
Selected: Typed (2sxc 16+) Switch to Dynamic (Razor14 or below)
Selected: Typed (2sxc 16+) Switch to Dynamic (Razor14 or below)
This filters the authors to only find Terry.
⬇️ Result | Source ➡️
- Terry Pratchett
This filters the authors with long first names.
⬇️ Result | Source ➡️
- Douglas Adams
- George Akerlof
- Raphael Müller (not an author)
This filters the authors with long first names.
⬇️ Result | Source ➡️
- Persons with 5-char names or more: True
- Persons with 10-char names or more: False
⬇️ Result | Source ➡️
- First: Douglas
- Last: Ed
Take the first three authors.
⬇️ Result | Source ➡️
- Douglas Adams
- Terry Pratchett
- Neil Gaiman
Skip the first three authors.
⬇️ Result | Source ➡️
- George Akerlof
- Raphael Müller (not an author)
- Ed Hardy
Skip the first three authors, then take 2.
⬇️ Result | Source ➡️
- George Akerlof
- Raphael Müller (not an author)
⬇️ Result | Source ➡️
- All Persons: 6
- All Books: 4
- Books with Illustrators: 1)
This example shows A-Z ordering by a property which exists on all entities: EntityId
⬇️ Result | Source ➡️
- Douglas Adams (#5338)
- Terry Pratchett (#5339)
- Neil Gaiman (#5340)
- George Akerlof (#5344)
- Raphael Müller (not an author) (#5348)
- Ed Hardy (#5349)
This example shows A-Z ordering by a property which exists only on Person-entities. This is simple with dynamic
objects
⬇️ Result | Source ➡️
- Douglas Adams
- Ed Hardy
- George Akerlof
- Neil Gaiman
- Raphael Müller (not an author)
- Terry Pratchett
This example shows Z-A ordering by a property.
⬇️ Result | Source ➡️
- Raphael Müller (not an author) (3/1/2000)
- Neil Gaiman (11/10/1960)
- Douglas Adams (3/11/1952)
- Terry Pratchett (4/28/1948)
- Ed Hardy (1/1/1945)
- George Akerlof (6/17/1940)