Files
JG2401 90c5e758ff Update README.md
IEnumerable & IQueryable
2024-11-05 09:35:08 +01:00

2.5 KiB

Version 1.0

Struct

Interface

IEnumerable & IQueryable

IEnumerable

Ermöglicht das Iterieren durch ein Objekt, was ohne IEnumerable nicht möglich wäre (Siehe 1). Zudem ermöglicht es die Verwendung von Funktionen wie z.B.: First()(Siehe 2)

IEnumerable-Beispiel
IEnumerable<Product> products = myORM.GetProducts();
var productsOver25 = products.Where(p => p.Cost >= 25.00);
//Query: SELECT * FROM Products

IQueryable

Der Unterschied zwischen IEnumerable und IQueryable ist der, dass IEnumerable alle Daten lädt und diese selbst filtert. IQueryable filtert direkt in der Abfrage

IQueryable-Beispiel
IQueryable<Product> products = myORM.GetQueryableProducts();
var productsOver25 = products.Where(p => p.Cost >= 25.00);
//Query: SELECT * FROM Products WHERE Cost >= 25

IDisposable

IComparable & IComparer

IEquatable & IEqualityComparer

IList

ICollection

IDictionary<T,K>

Delegate

Delegate sind Referenztypen

fixed

Fixed verhindert das der Garbage Collector eine bewegliche Variable ordnet, und deklariert einen Zeiger auf diese Variable.

lock

Operatoren (operators)

Ausdrücke (expressions)

Interpolierte Zeichenfolgenausdrücke (Interpolated string expressions)

var r = 2.3;
var message = $"The area of a circle with radius {r} is {Math.PI * r * r:F3}.";
Console.WriteLine(message);
// Output:
// The area of a circle with radius 2.3 is 16.619.

Lambdaausdrücke (Lambda expressions)

int[] numbers = { 2, 3, 4, 5 };
var maximumSquare = numbers.Max(x => x * x);
Console.WriteLine(maximumSquare);
// Output:
// 25

Abfrageausdrücke (Query expressions)

var scores = new[] { 90, 97, 78, 68, 85 };
IEnumerable<int> highScoresQuery =
    from score in scores
    where score > 80
    orderby score descending
    select score;
Console.WriteLine(string.Join(" ", highScoresQuery));
// Output:
// 97 90 85