Queryable.Count Queryable.Count Queryable.Count Queryable.Count Method

定義

傳回序列中的項目數。Returns the number of elements in a sequence.

多載

Count<TSource>(IQueryable<TSource>) Count<TSource>(IQueryable<TSource>) Count<TSource>(IQueryable<TSource>) Count<TSource>(IQueryable<TSource>)

傳回序列中的項目數。Returns the number of elements in a sequence.

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

傳回指定之序列中符合條件的項目數目。Returns the number of elements in the specified sequence that satisfies a condition.

Count<TSource>(IQueryable<TSource>) Count<TSource>(IQueryable<TSource>) Count<TSource>(IQueryable<TSource>) Count<TSource>(IQueryable<TSource>)

傳回序列中的項目數。Returns the number of elements in a sequence.

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

類型參數

TSource

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

參數

source
IQueryable<TSource>

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

傳回

輸入序列中的項目數目。The number of elements in the input sequence.

例外狀況

source 中的項目數目大於 MaxValueThe number of elements in source is larger than MaxValue.

範例

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

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

int numberOfFruits = fruits.AsQueryable().Count();

Console.WriteLine(
    "There are {0} items in the array.",
    numberOfFruits);

// This code produces the following output:
//
// There are 6 items in the array. 

Dim fruits() As String = {"apple", "banana", "mango", _
                    "orange", "passionfruit", "grape"}

Dim numberOfFruits As Integer = fruits.AsQueryable().Count()

MsgBox(String.Format( _
    "There are {0} items in the array.", _
    numberOfFruits))

' This code produces the following output:
'
' There are 6 items in the array. 

備註

方法會產生, 其代表以Count<TSource>(IQueryable<TSource>)結構化泛型方法的方式呼叫本身。 MethodCallExpression Count<TSource>(IQueryable<TSource>)The Count<TSource>(IQueryable<TSource>) method generates a MethodCallExpression that represents calling Count<TSource>(IQueryable<TSource>) itself as a constructed generic method. 然後, 它會MethodCallExpression將傳遞Execute<TResult>(Expression)至由Provider source參數IQueryProvider的屬性所表示之的方法。It then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

因執行代表呼叫Count<TSource>(IQueryable<TSource>)之運算式樹狀架構而產生的查詢行為, 取決於source參數類型的實作為。The query behavior that occurs as a result of executing an expression tree that represents calling Count<TSource>(IQueryable<TSource>) depends on the implementation of the type of the source parameter. 預期的行為是它會計算中source的專案數。The expected behavior is that it counts the number of items in source.

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

傳回指定之序列中符合條件的項目數目。Returns the number of elements in the specified sequence that satisfies a condition.

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

類型參數

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.

傳回

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

例外狀況

sourcepredicatenullsource or predicate is null.

source 中的項目數目大於 MaxValueThe number of elements in source is larger than MaxValue.

範例

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

class Pet
{
    public string Name { get; set; }
    public bool Vaccinated { get; set; }
}

public static void CountEx2()
{
    // Create an array of Pet objects.
    Pet[] pets = { new Pet { Name="Barley", Vaccinated=true },
                   new Pet { Name="Boots", Vaccinated=false },
                   new Pet { Name="Whiskers", Vaccinated=false } };

    // Count the number of unvaccinated pets in the array.
    int numberUnvaccinated =
        pets.AsQueryable().Count(p => p.Vaccinated == false);

    Console.WriteLine(
        "There are {0} unvaccinated animals.",
        numberUnvaccinated);
}

// This code produces the following output:
//
// There are 2 unvaccinated animals.

Structure Pet
    Public Name As String
    Public Vaccinated As Boolean
End Structure

Shared Sub CountEx2()
    ' Create an array of Pet objects.
    Dim pets() As Pet = {New Pet With {.Name = "Barley", .Vaccinated = True}, _
                   New Pet With {.Name = "Boots", .Vaccinated = False}, _
                   New Pet With {.Name = "Whiskers", .Vaccinated = False}}

    ' Count the number of unvaccinated pets in the array.
    Dim numberUnvaccinated As Integer = pets.AsQueryable().Count(Function(p) p.Vaccinated = False)

    MsgBox(String.Format("There are {0} unvaccinated animals.", numberUnvaccinated))
End Sub

' This code produces the following output:
'
' There are 2 unvaccinated animals.

備註

這個方法至少有一個類型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>.

方法會產生, 其代表以Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)結構化泛型方法的方式呼叫本身。 MethodCallExpression Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)The Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) method generates a MethodCallExpression that represents calling Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) itself as a constructed generic method. 然後, 它會MethodCallExpression將傳遞Execute<TResult>(Expression)至由Provider source參數IQueryProvider的屬性所表示之的方法。It then passes the MethodCallExpression to the Execute<TResult>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

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

適用於