CapyKit/Docs/api/CapyKit.Extensions.LINQExtensions.md

13 KiB

Class LINQExtensions

Namespace: CapyKit.Extensions
Assembly: CapyKit.dll

Provides static extension methods for performing common LINQ operations on and collections.

public static class LINQExtensions

Inheritance

objectLINQExtensions

Inherited Members

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

Extension Methods

ObjectExtensions.UpdateProperties(object, object)

Methods

Distinct<T, U>IEnumerable<T\>, Func<T, U\>

Enumerates distinct items in this collection as defined by the key property.

public static IEnumerable<T> Distinct<T, U>(this IEnumerable<T> items, Func<T, U> property)

Parameters

items IEnumerable<T>

The items to act on.

property Func<T, U>

The property.

Returns

IEnumerable<T>

An enumerator that allows foreach to be used to process distinct items in this collection.

Type Parameters

T

Generic type parameter of the parent object.

U

Generic type parameter property value.

Filter<T>IEnumerable<T\>, Func<T, bool\>

Filters out items matching a predicate from the collection.

public static IEnumerable<T> Filter<T>(this IEnumerable<T> source, Func<T, bool> predicate)

Parameters

source IEnumerable<T>

The source to act on.

predicate Func<T, bool>

The predicate.

Returns

IEnumerable<T>

An enumerator that allows foreach to be used to process remove in this collection.

Type Parameters

T

Generic type parameter.

Filter<T>IQueryable<T\>, Expression<Func<T, bool\>\>

Filters out items matching a predicate from the collection.

public static IQueryable<T> Filter<T>(this IQueryable<T> source, Expression<Func<T, bool>> predicate)

Parameters

source IQueryable<T>

The source to act on.

predicate Expression<Func<T, bool>>

The predicate.

Returns

IQueryable<T>

An enumerator that allows foreach to be used to process remove in this collection.

Type Parameters

T

Generic type parameter.

LeftOuterJoin<T, U, TKey, R>IQueryable<T\>, IQueryable<U\>, Expression<Func<T, TKey\>\>, Expression<Func<U, TKey\>\>, Func<T, IEnumerable<U\>, R\>, Func<T, U\>

An IQueryable<T> extension method that left outer join.

public static IQueryable<R> LeftOuterJoin<T, U, TKey, R>(this IQueryable<T> source, IQueryable<U> inner, Expression<Func<T, TKey>> outerSelector, Expression<Func<U, TKey>> innerSelector, Func<T, IEnumerable<U>, R> resultSelector, Func<T, U> defaultGenerator = null)

Parameters

source IQueryable<T>

The source to act on.

inner IQueryable<U>

The inner.

outerSelector Expression<Func<T, TKey>>

The outer selector.

innerSelector Expression<Func<U, TKey>>

The inner selector.

resultSelector Func<T, IEnumerable<U>, R>

The result selector.

defaultGenerator Func<T, U>

(Optional) The default generator.

Returns

IQueryable<R>

An IQueryable<R>

Type Parameters

T

Generic type parameter.

U

Generic type parameter.

TKey

Type of the key.

R

Type of the r.

LeftOuterJoin<T, U, TKey, R>IEnumerable<T\>, IEnumerable<U\>, Func<T, TKey\>, Func<U, TKey\>, Func<T, IEnumerable<U\>, R\>, Func<T, U\>

An IEnumable<T> extension method that left outer join.

public static IEnumerable<R> LeftOuterJoin<T, U, TKey, R>(this IEnumerable<T> source, IEnumerable<U> inner, Func<T, TKey> outerSelector, Func<U, TKey> innerSelector, Func<T, IEnumerable<U>, R> resultSelector, Func<T, U> defaultGenerator = null)

Parameters

source IEnumerable<T>

The source to act on.

inner IEnumerable<U>

The inner.

outerSelector Func<T, TKey>

The outer selector.

innerSelector Func<U, TKey>

The inner selector.

resultSelector Func<T, IEnumerable<U>, R>

The result selector.

defaultGenerator Func<T, U>

(Optional) The default generator.

Returns

IEnumerable<R>

An enumerator that allows foreach to be used to process left outter join in this collection.

Type Parameters

T

Generic type parameter.

U

Generic type parameter.

TKey

Type of the key.

R

Type of the r.

Page<T>IEnumerable<T\>, int, int

Get a page of items from a collection, skipping pageNumber pages of pageSize items per page.

public static IEnumerable<T> Page<T>(this IEnumerable<T> source, int pageNumber, int pageSize)

Parameters

source IEnumerable<T>

The source to act on.

pageNumber int

The page number to retrieve.

pageSize int

Number of items per page.

Returns

IEnumerable<T>

An enumerator that allows foreach to be used to process page in this collection.

Type Parameters

T

Generic type parameter.

Remarks

This method uses natural numbering starting at page 1.

Exceptions

ArgumentOutOfRangeException

Thrown when pageNumber is less than 1 or if pageSize is less than 1.

Page<T>IQueryable<T\>, int, int

Get a page of items from a collection, skipping pageNumber pages of pageSize items per page.

public static IQueryable<T> Page<T>(this IQueryable<T> source, int pageNumber, int pageSize)

Parameters

source IQueryable<T>

The source to act on.

pageNumber int

The page number to retrieve.

pageSize int

.

Returns

IQueryable<T>

An enumerator that allows foreach to be used to process page in this collection.

Type Parameters

T

Generic type parameter.

Remarks

This method uses natural numbering starting at page 1.

Exceptions

ArgumentOutOfRangeException

Thrown when pageNumber is less than 1 or if pageSize is less than 1.

PageCount<T>IEnumerable<T\>, int

The number of pages of pageSize size in the given collection.

public static int PageCount<T>(this IEnumerable<T> source, int pageSize)

Parameters

source IEnumerable<T>

The source to act on.

pageSize int

Size of the page.

Returns

int

An int.

Type Parameters

T

Generic type parameter.

Exceptions

ArgumentOutOfRangeException

Thrown when pageSize is less than 1.

PageCount<T>IQueryable<T\>, int

The number of pages of pageSize size in the given collection.

public static int PageCount<T>(this IQueryable<T> source, int pageSize)

Parameters

source IQueryable<T>

The source to act on.

pageSize int

Size of the page.

Returns

int

An int.

Type Parameters

T

Generic type parameter.

Exceptions

ArgumentOutOfRangeException

Thrown when pageSize is less than 1.