Queryable.Take<TSource>(IQueryable<TSource>, Int32) Metoda

Definice

Vrátí zadaný počet souvislých prvků od začátku sekvence.Returns a specified number of contiguous elements from the start of a sequence.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ Take(System::Linq::IQueryable<TSource> ^ source, int count);
public static System.Linq.IQueryable<TSource> Take<TSource> (this System.Linq.IQueryable<TSource> source, int count);
static member Take : System.Linq.IQueryable<'Source> * int -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function Take(Of TSource) (source As IQueryable(Of TSource), count As Integer) As IQueryable(Of TSource)

Parametry typu

TSource

Typ prvků source .The type of the elements of source.

Parametry

source
IQueryable<TSource>

Sekvence, ze které se mají vracet prvkyThe sequence to return elements from.

count
Int32

Počet prvků, které se mají vrátit.The number of elements to return.

Návraty

IQueryable<TSource>

Obsahující IQueryable<T> zadaný počet prvků od začátku source .An IQueryable<T> that contains the specified number of elements from the start of source.

Výjimky

source je null.source is null.

Příklady

Následující příklad kódu ukazuje, jak použít Take<TSource>(IQueryable<TSource>, Int32) k vrácení prvků od začátku sekvence.The following code example demonstrates how to use Take<TSource>(IQueryable<TSource>, Int32) to return elements from the start of a sequence.

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
*/
Dim grades() As Integer = {59, 82, 70, 56, 92, 98, 85}

' Sort the grades in descending order and take the first three.
Dim topThreeGrades = _
    grades.AsQueryable().OrderByDescending(Function(grade) grade).Take(3)

Dim output As New System.Text.StringBuilder
output.AppendLine("The top three grades are:")
For Each grade As Integer In topThreeGrades
    output.AppendLine(grade)
Next

' Display the output.
MsgBox(output.ToString())

' This code produces the following output:

' The top three grades are:
' 98
' 92
' 85

Poznámky

Take<TSource>(IQueryable<TSource>, Int32)Metoda generuje MethodCallExpression , který reprezentuje volání Take<TSource>(IQueryable<TSource>, Int32) sebe sama jako vytvořenou obecnou metodu.The Take<TSource>(IQueryable<TSource>, Int32) method generates a MethodCallExpression that represents calling Take<TSource>(IQueryable<TSource>, Int32) itself as a constructed generic method. Poté předá MethodCallExpression CreateQuery(Expression) metodě IQueryProvider reprezentované Provider vlastností source parametru.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Chování dotazu, k němuž dojde v důsledku provádění stromu výrazu, který představuje volání, Take<TSource>(IQueryable<TSource>, Int32) závisí na implementaci typu source parametru.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. Očekávané chování je, že přijímá první count prvky od začátku source .The expected behavior is that it takes the first count elements from the start of source.

Platí pro