Freigeben über


Queryable.Count Methode

Definition

Gibt die Anzahl der Elemente in einer Sequenz zurück.

Überlädt

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

Gibt die Anzahl der Elemente in der angegebenen Sequenz zurück, die eine Bedingung erfüllen.

Count<TSource>(IQueryable<TSource>)

Gibt die Anzahl der Elemente in einer Sequenz zurück.

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

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Gibt die Anzahl der Elemente in der angegebenen Sequenz zurück, die eine Bedingung erfüllen.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IQueryable<TSource>

Ein Element IQueryable<T> , das die zu zählenden Elemente enthält.

predicate
Expression<Func<TSource,Boolean>>

Eine Funktion zum Testen der einzelnen Elemente für eine Bedingung.

Gibt zurück

Die Anzahl der Elemente in der Sequenz, die die Bedingung in der Prädikatfunktion erfüllt.

Attribute

Ausnahmen

source oder predicate ist null.

Die Anzahl der Elemente in source ist größer als Int32.MaxValue.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) die Elemente in einer Sequenz gezählt werden, die eine Bedingung erfüllen.

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.

Hinweise

Diese Methode verfügt über mindestens einen Typparameter Expression<TDelegate> , dessen Typargument einer der Func<T,TResult> Typen ist. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben und zu einem Expression<TDelegate>.

Die Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Methode generiert eine MethodCallExpression , die den Aufruf Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) selbst als konstruierte generische Methode darstellt. Anschließend wird die MethodCallExpression Methode der Execute<TResult>(Expression)IQueryProvider durch die Provider Eigenschaft des source Parameters dargestellten Methode übergeben.

Das Abfrageverhalten, das als Ergebnis der Ausführung einer Ausdrucksstruktur auftritt, die aufruft Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass die Anzahl der Elemente gezählt wird, die source die angegebene predicateBedingung erfüllen.

Gilt für:

Count<TSource>(IQueryable<TSource>)

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Gibt die Anzahl der Elemente in einer Sequenz zurück.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static int Count<TSource>(this System.Linq.IQueryable<TSource> source);
static member Count : System.Linq.IQueryable<'Source> -> int
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member Count : System.Linq.IQueryable<'Source> -> int
<Extension()>
Public Function Count(Of TSource) (source As IQueryable(Of TSource)) As Integer

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IQueryable<TSource>

Das IQueryable<T> Element, das die zu zählenden Elemente enthält.

Gibt zurück

Die Anzahl der Elemente in der Eingabesequenz.

Attribute

Ausnahmen

source ist null.

Die Anzahl der Elemente in source ist größer als Int32.MaxValue.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Count<TSource>(IQueryable<TSource>) die Elemente in einer Sequenz gezählt werden.

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.

Hinweise

Die Count<TSource>(IQueryable<TSource>) Methode generiert eine MethodCallExpression , die den Aufruf Count<TSource>(IQueryable<TSource>) selbst als konstruierte generische Methode darstellt. Anschließend wird die MethodCallExpression Methode der Execute<TResult>(Expression)IQueryProvider durch die Provider Eigenschaft des source Parameters dargestellten Methode übergeben.

Das Abfrageverhalten, das als Ergebnis der Ausführung einer Ausdrucksstruktur auftritt, die aufruft Count<TSource>(IQueryable<TSource>) , hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass die Anzahl der Elemente in source.

Gilt für: