diff --git a/.NET/C#/LINQ.md b/.NET/C#/LINQ.md index b0824cc..c4a29bc 100644 --- a/.NET/C#/LINQ.md +++ b/.NET/C#/LINQ.md @@ -47,16 +47,24 @@ The `Where` and `Select` methods are examples of LINQ operators. A LINQ operator ```cs Enumerable.Range(int start, int end); // IEnumerable of values between start & end -IEnumerable.Select(Func selector) // map -IEnumerable.Where(Func predicate) // filter +IEnumerable.Select(Func selector); // map +IEnumerable.Where(Func predicate); // filter -IEnumerable.FirstOrDefault() // first element of IEnumerable or default(T) if empty -IEnumerable.FirstOrDefault(Func predicate) // first element to match predicate or default(T) +IEnumerable.FirstOrDefault(); // first element of IEnumerable or default(T) if empty +IEnumerable.FirstOrDefault(T default); // specify returned default +IEnumerable.FirstOrDefault(Func predicate); // first element to match predicate or default(T) +// same for LastOrDefault & SingleOrDefault + +IEnumerable.Chunk(size); // chunk an enumerable into slices of a fixed size // T must implement IComparable -IEnumerable.Max(); +IEnumerable.Max(); IEnumerable.Min(); +// allow finding maximal or minimal elements using a key selector +IEnumerable.MaxBy(Func selector); +IEnumerable.MinBy(Func selector); + IEnumerable.All(Func predicate); // check if condition is true for all elements IEnumerable.Any(Func predicate); // check if condition is true for at least one element @@ -72,5 +80,5 @@ IEnumerable.Zip(IEnumerable enumerable); // Produces a sequence ```cs Enumerable.Method(IEnumerable source, args); // if extension method same as -IEnumerable.Method(args) +IEnumerable.Method(args); ```