Queryable.Take Method

Definition

Overloads

Take<TSource>(IQueryable<TSource>, Int32)

Returns a specified number of contiguous elements from the start of a sequence.

Take<TSource>(IQueryable<TSource>, Range)

Returns a specified range of contiguous elements from a sequence.

Take<TSource>(IQueryable<TSource>, Int32)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Returns a specified number of contiguous elements from the start of a sequence.

C#
public static System.Linq.IQueryable<TSource> Take<TSource>(this System.Linq.IQueryable<TSource> source, int count);

Type Parameters

TSource

The type of the elements of source.

Parameters

source
IQueryable<TSource>

The sequence to return elements from.

count
Int32

The number of elements to return.

Returns

IQueryable<TSource>

An IQueryable<T> that contains the specified number of elements from the start of source.

Exceptions

source is null.

Examples

The following code example demonstrates how to use Take<TSource>(IQueryable<TSource>, Int32) to return elements from the start of a sequence.

C#
int[] grades = { 59, 82, 70, 56, 92, 98, 85 };

// Sort the grades in descending order and take the first three.
IEnumerable<int> topThreeGrades =
    grades.AsQueryable().OrderByDescending(grade => grade).Take(3);

Console.WriteLine("The top three grades are:");
foreach (int grade in topThreeGrades)
    Console.WriteLine(grade);

/*
    This code produces the following output:

    The top three grades are:
    98
    92
    85
*/

Remarks

The Take<TSource>(IQueryable<TSource>, Int32) method generates a MethodCallExpression that represents calling Take<TSource>(IQueryable<TSource>, Int32) itself as a constructed generic method. It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

The query behavior that occurs as a result of executing an expression tree that represents calling Take<TSource>(IQueryable<TSource>, Int32) depends on the implementation of the type of the source parameter. The expected behavior is that it takes the first count elements from the start of source.

Applies to

.NET 10 and other versions
Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Take<TSource>(IQueryable<TSource>, Range)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Returns a specified range of contiguous elements from a sequence.

C#
public static System.Linq.IQueryable<TSource> Take<TSource>(this System.Linq.IQueryable<TSource> source, Range range);

Type Parameters

TSource

The type of the elements of source.

Parameters

source
IQueryable<TSource>

The sequence to return elements from.

range
Range

The range of elements to return, which has start and end indexes either from the start or the end.

Returns

IQueryable<TSource>

An IQueryable<T> that contains the specified range of elements from the source sequence.

Exceptions

source is null.

Applies to

.NET 10 and other versions
Product Versions
.NET 6, 7, 8, 9, 10