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 9 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
.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 9 and other versions
Product Versions
.NET 6, 7, 8, 9