90 likes | 208 Views
Linq – The Basics. Arve Bjørnerud. 20. November 2009. Language Integrated Query. Skriv en ” sql ” spørring rett i koden mot: In memory lister Database Events Filesystem ++++ Lag din egen vha adapter støtte Alt som arver fra IEnumerable kan man kjøre spørringer på.
E N D
Linq – The Basics Arve Bjørnerud 20. November 2009
LanguageIntegrated Query • Skriv en ”sql” spørring rett i koden mot: • In memory lister • Database • Events • Filesystem • ++++ • Lag din egen vha adapter støtte • Alt som arver fra IEnumerable kan man kjøre spørringer på. • For eksempel List<>
Ett enkelt eksempel List<string> names = newList<string> {"Per", "Pål", "Espen"}; var p = from name in names wherename == "Espen" selectname; Console.WriteLine(p.First());
Kan også skrives slik List<string> names = newList<string> {"Per", "Pål", "Espen"}; Console.WriteLine(names.Where(x => x == "Espen").First());
Lambda uttrykk x => x == "Espen” Oversettes til delegate(string x) { returnx==”Espen”; }
Syntaktisk sukker • Uttrykk kan slås sammen: List<string> names = newList<string> {"Per", "Pål", "Espen"}; var s = names.Where(n => n.StartsWith("P")) .Where(m => m.EndsWith("r")) .Select(o => o.Substring(1,1)); Kurs i C# og LINQ
Anonyme typer List<string> names = newList<string>(); names.Add("Per"); names.Add("Pål"); var persons = from name in names selectnew { NameUppercase = name.ToUpper(), NameLenght = name.Length }; var person = persons.First(); Console.WriteLine("Uppercasename={0}. Namelenght={1}.", person.NameUppercase, person.NameLenght);
Spørreoperatorer Kurs i C# og LINQ
Oppgaveløsing • SVN Checkout: • http://linqkurs.googlecode.com/svn/trunk/ • Start på oppgave ”Part1_TheBasics” • Vent med de andre oppgavene • Sitter du fast? • Spør nabo • Spør google • Spør Arve, Elisabeth, Lise eller Åsmund • Ikke se på løsningen før du har prøvd selv Selskapspresentasjon 2007