Linq - Grundlagen
Linq - Grundlagen
Linq - Grundlagen
1.Schritt: Datenquelle definieren
Linq - Grundlagen
1.Schritt: Datenquelle definieren
Linq - Grundlagen
2.Schritt - Abfragen erstellen
Die Basis einer Linq Abfrage ist dabei immer eine Menge
von Objekten.
Linq - Grundlagen
2.Schritt - Abfragen erstellen
Linq - Grundlagen
3.Schritt - Abfragen ausführen
Linq - Grundlagen
3.Schritt - Abfragen ausführen
Linq - Klausel
Abfragesyntax
Linq - Klausel
Beispiel: where Klausel
Func<Student,bool> isTeenager =
delegate(Student s) {
return s.Age > 12 && s.Age < 20;
};
string[] words = {
"the", "quick", "brown", "fox", "jumps"
};
Linq - Datenaggregation
Linq - Datenaggregation
Syntax: join
Linq - Datenaggregation
Beispiel: INNER JOIN
Linq - Datenaggregation
Beispiel: INNER JOIN
Linq - Datenaggregation
Beispiel: INNER JOIN - Objektassoziation
// Datenquelle definieren
class Person {
public string FirstName { get; set; }
public string LastName { get; set; }
}
class Pet {
public string Name { get; set; }
public Person Owner { get; set; }
}
Linq - Datenaggregation
Beispiel: INNER JOIN - Objektassoziation
Linq - Datenaggregation
Beispiel: INNER JOIN - composite key
Linq - Datenaggregation
Beispiel: INNER JOIN - composite key
Linq - Datenaggregation
Beispiel: INNER JOIN - multiple join
class Pet {
public string Name { get; set; }
public Person Owner { get; set; }
}
Linq - Datenaggregation
Beispiel: INNER JOIN - multiple join
-- multiple join: Abfrage definieren
var query = from p in people
join c in cats on p equals c.Owner
join d in dogs on
new {
Owner=p, Letter=c.Name.Substr(0, 1)
}
equals new {
d.Owner, Letter = d.Name.Substr(0, 1)
}
select new {
CatName = c.Name, DogName = d.Name
};
Partitionierungsoperatoren:
• Skip
• SkipWhile
• Take
• TakeWhile
Linq - Aggregationsoperatoren
Linq - Aggregationsoperatoren
Aggregationsoperatoren:
• Min, Max, Average
• Count, Sum
• Aggregate
Linq - Aggregationsoperatoren
Operatoren: Min, Max, Average
Linq - Aggregationsoperatoren
Operator: Aggregate
Linq - Aggregationsoperatoren
Operator: Aggregate
foreach(int i in group){
Console.WriteLine(i);
}
}
-- Output
from s in students
group s by new {
FirstLetter = s.LastName[0],
Score = s.ExamScore > 85
}
into studentGroup -- gruppierten Daten
orderby studentGroup.Key.FirstLetter
select studentGroup;
from s in students
group s by new {
FirstLetter = s.LastName[0],
Score = s.ExamScored[0] > 85
} into studentGroup
where studentGroup.Count(s) > 3
orderby studentGroup.Key.FirstLetter
select studentGroup;
// Datenbasis definieren
var players = new List<Player>{
new Player("Alex", "A", 10),
new Player("Anna", "A", 20),
new Player("Luke", "L", 60),
new Player("Lucy", "L", 40)
};
Linq - Mengenoperationen
Linq - Mengenoperationen
Linq - Mengenoperationen
Distinct Methode
Linq - Mengenoperationen
Distinct Methode
string[] planets = {
"Mercury", "Venus", "Venus", "Earth", "Mars", "Earth"
};
Linq - Mengenoperationen
Except Methode
Linq - Mengenoperationen
Except Methode
string[] planets1 = {
"Mercury", "Venus", "Earth", "Jupiter"
};
string[] planets2 = {
"Mercury", "Earth", "Mars", "Jupiter"
};
// Ergebnis: {"Venus"}
Linq - Mengenoperationen
Intersect Methode
Linq - Mengenoperationen
Intersect Methode
string[] planets1 = {
"Mercury", "Venus", "Earth", "Jupiter"
};
string[] planets2 = {
"Mercury", "Earth", "Mars", "Jupiter"
};
Linq - Mengenoperationen
Union Methode
Linq - Mengenoperationen
Union Methode
string[] planets1 = {
"Mercury", "Venus", "Earth", "Jupiter"
};
string[] planets2 = {
"Mercury", "Earth", "Mars", "Jupiter"
};
Ergebnis: {
"Mercury", "Venus", "Earth", "Jupiter", "Mars"
}
Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 10. Februar 2021
70/83
sew htl krems
Linq - Quantifier
Quantifer Operatoren:
• All
• Any
• Contains
Linq - Quantifier
All Quantifier
Linq - Quantifier
All Quantifier: Beispiel
Linq - Quantifier
All Quantifier: Beispiel
Linq - Quantifier
Any Quantifier
Linq - Quantifier
All Quantifier: Beispiel
Linq - Quantifier
Contains Quantifier
Linq - Quantifier
All Quantifier: Beispiel
Linq - Unterabfragen
Linq - Unterabfragen
// Datenbasis definieren
var players = new List<Player>{
new Player("Alex", "A", 10),
new Player("Anna", "A", 20),
new Player("Luke", "L", 60),
new Player("Lucy", "L", 40)
};
Linq - Unterabfragen