Queryable.Count Methode

Definitie

Retourneert het aantal elementen in een reeks.

Overloads

Name Description
Count<TSource>(IQueryable<TSource>)

Retourneert het aantal elementen in een reeks.

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

Retourneert het aantal elementen in de opgegeven reeks dat voldoet aan een voorwaarde.

Count<TSource>(IQueryable<TSource>)

Retourneert het aantal elementen in een reeks.

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

Type parameters

TSource

Het type van de elementen van source.

Parameters

source
IQueryable<TSource>

De IQueryable<T> elementen die moeten worden geteld.

Retouren

Het aantal elementen in de invoerreeks.

Uitzonderingen

source is null.

Het aantal elementen is source groter dan Int32.MaxValue.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe Count<TSource>(IQueryable<TSource>) u de elementen in een reeks kunt tellen.

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.

Opmerkingen

De Count<TSource>(IQueryable<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept Count<TSource>(IQueryable<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de Execute<TResult>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.

Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Count<TSource>(IQueryable<TSource>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat het aantal items in sourcetelt.

Van toepassing op

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

Retourneert het aantal elementen in de opgegeven reeks dat voldoet aan een voorwaarde.

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

Type parameters

TSource

Het type van de elementen van source.

Parameters

source
IQueryable<TSource>

Een IQueryable<T> die de elementen bevat die moeten worden geteld.

predicate
Expression<Func<TSource,Boolean>>

Een functie om elk element voor een voorwaarde te testen.

Retouren

Het aantal elementen in de reeks dat voldoet aan de voorwaarde in de predicaatfunctie.

Uitzonderingen

source of predicate is null.

Het aantal elementen is source groter dan Int32.MaxValue.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) u de elementen in een reeks kunt tellen die voldoen aan een voorwaarde.

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);

    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.

Opmerkingen

Deze methode heeft ten minste één parameter van het type Expression<TDelegate> waarvan het typeargument een van de Func<T,TResult> typen is. Voor deze parameters kunt u een lambda-expressie doorgeven en deze wordt gecompileerd naar een Expression<TDelegate>.

De Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) methode genereert een MethodCallExpression die zichzelf aanroept Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de Execute<TResult>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source parameter.

Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , is afhankelijk van de implementatie van het type source parameter. Het verwachte gedrag is dat hiermee het aantal items wordt source geteld dat voldoet aan de voorwaarde die is opgegeven door predicate.

Van toepassing op