Queryable.LongCount 方法

定義

傳回代表序列中項目數目的 Int64Returns an Int64 that represents the number of elements in sequence.

多載

LongCount<TSource>(IQueryable<TSource>)

傳回代表序列中項目總數的 Int64Returns an Int64 that represents the total number of elements in a sequence.

LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

傳回 Int64,其代表序列中符合條件的項目數目。Returns an Int64 that represents the number of elements in a sequence that satisfy a condition.

LongCount<TSource>(IQueryable<TSource>)

傳回代表序列中項目總數的 Int64Returns an Int64 that represents the total number of elements in a sequence.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static long LongCount(System::Linq::IQueryable<TSource> ^ source);
public static long LongCount<TSource> (this System.Linq.IQueryable<TSource> source);
static member LongCount : System.Linq.IQueryable<'Source> -> int64
<Extension()>
Public Function LongCount(Of TSource) (source As IQueryable(Of TSource)) As Long

類型參數

TSource

source 項目的類型。The type of the elements of source.

參數

source
IQueryable<TSource>

包含要計算之項目的 IQueryable<T>An IQueryable<T> that contains the elements to be counted.

傳回

Int64

source 中的元素數目。The number of elements in source.

例外狀況

sourcenullsource is null.

項目數目超出 MaxValueThe number of elements exceeds MaxValue.

範例

下列程式碼範例示範如何使用 LongCount<TSource>(IQueryable<TSource>) 來計算陣列中的元素。The following code example demonstrates how to use LongCount<TSource>(IQueryable<TSource>) to count the elements in an array.

string[] fruits = { "apple", "banana", "mango",
                      "orange", "passionfruit", "grape" };

long count = fruits.AsQueryable().LongCount();

Console.WriteLine("There are {0} fruits in the collection.", count);

/*
    This code produces the following output:

    There are 6 fruits in the collection.
*/
Dim fruits() As String = {"apple", "banana", "mango", _
                      "orange", "passionfruit", "grape"}

Dim count As Long = fruits.AsQueryable().LongCount()

MsgBox(String.Format("There are {0} fruits in the collection.", count))

' This code produces the following output:

' There are 6 fruits in the collection.

備註

LongCount<TSource>(IQueryable<TSource>)方法 MethodCallExpression 會產生,代表呼叫 LongCount<TSource>(IQueryable<TSource>) 本身做為已建立的泛型方法。The LongCount<TSource>(IQueryable<TSource>) method generates a MethodCallExpression that represents calling LongCount<TSource>(IQueryable<TSource>) itself as a constructed generic method. 然後,它會將傳遞 MethodCallExpression 給以 Execute<TResult>(Expression) 參數的屬性所表示的方法 IQueryProvider Provider sourceIt then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

執行表示呼叫的運算式樹狀架構所產生的查詢行為, LongCount<TSource>(IQueryable<TSource>) 取決於參數類型的實作為 sourceThe query behavior that occurs as a result of executing an expression tree that represents calling LongCount<TSource>(IQueryable<TSource>) depends on the implementation of the type of the source parameter. 預期的行為是它會計算中的專案數 source ,並且傳回 Int64The expected behavior is that it counts the number of items in source and returns an Int64.

適用於

LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

傳回 Int64,其代表序列中符合條件的項目數目。Returns an Int64 that represents the number of elements in a sequence that satisfy a condition.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static long LongCount(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static long LongCount<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member LongCount : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> int64
<Extension()>
Public Function LongCount(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As Long

類型參數

TSource

source 項目的類型。The type of the elements of source.

參數

source
IQueryable<TSource>

包含要計算之項目的 IQueryable<T>An IQueryable<T> that contains the elements to be counted.

predicate
Expression<Func<TSource,Boolean>>

用來測試每個項目是否符合條件的函式。A function to test each element for a condition.

傳回

Int64

source 中符合述詞函式之條件的項目數目。The number of elements in source that satisfy the condition in the predicate function.

例外狀況

sourcepredicatenullsource or predicate is null.

符合的項目數目超出 MaxValueThe number of matching elements exceeds MaxValue.

範例

下列程式碼範例示範如何使用 LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) 來計算陣列中滿足條件的元素。The following code example demonstrates how to use LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) to count the elements in an array that satisfy a condition.

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void LongCountEx2()
{
    Pet[] pets = { new Pet { Name="Barley", Age=8 },
                   new Pet { Name="Boots", Age=4 },
                   new Pet { Name="Whiskers", Age=1 } };

    const int Age = 3;

    // Count the number of Pet objects where Pet.Age is greater than 3.
    long count = pets.AsQueryable().LongCount(pet => pet.Age > Age);

    Console.WriteLine("There are {0} animals over age {1}.", count, Age);
}

/*
    This code produces the following output:

    There are 2 animals over age 3.
*/

Structure Pet
    Public Name As String
    Public Age As Integer
End Structure

Shared Sub LongCountEx2()
    Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
                       New Pet With {.Name = "Boots", .Age = 4}, _
                       New Pet With {.Name = "Whiskers", .Age = 1}}

    Const Age As Integer = 3

    ' Count the number of Pet objects where Pet.Age is greater than 3.
    Dim count As Long = pets.AsQueryable().LongCount(Function(Pet) Pet.Age > Age)

    MsgBox(String.Format("There are {0} animals over age {1}.", count, Age))
End Sub

' This code produces the following output:

' There are 2 animals over age 3.

備註

這個方法至少有一個類型的參數 Expression<TDelegate> ,其型別引數是其中一種 Func<T,TResult> 類型。This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. 針對這些參數,您可以傳入 lambda 運算式,並將其編譯為 Expression<TDelegate>For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)方法 MethodCallExpression 會產生,代表呼叫 LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) 本身做為已建立的泛型方法。The LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) method generates a MethodCallExpression that represents calling LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) itself as a constructed generic method. 然後,它會將傳遞 MethodCallExpression 給以 Execute<TResult>(Expression) 參數的屬性所表示的方法 IQueryProvider Provider sourceIt then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

執行表示呼叫的運算式樹狀架構所產生的查詢行為, LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) 取決於參數類型的實作為 sourceThe query behavior that occurs as a result of executing an expression tree that represents calling LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depends on the implementation of the type of the source parameter. 預期的行為是它會計算 source 符合所指定之條件的專案數,並且傳回 predicate Int64The expected behavior is that it counts the number of items in source that satisfy the condition specified by predicate and returns an Int64.

適用於