Compartir a través de


Queryable.Count Método

Definición

Devuelve el número de elementos de una secuencia.

Sobrecargas

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

Devuelve el número de elementos de la secuencia especificada que satisface una condición.

Count<TSource>(IQueryable<TSource>)

Devuelve el número de elementos de una secuencia.

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

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Devuelve el número de elementos de la secuencia especificada que satisface una condición.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IQueryable<TSource>

que IQueryable<T> contiene los elementos que se van a contar.

predicate
Expression<Func<TSource,Boolean>>

Función para probar cada elemento de una condición.

Devoluciones

Número de elementos de la secuencia que satisface la condición en la función de predicado.

Atributos

Excepciones

source o predicate es null.

El número de elementos de source es mayor que Int32.MaxValue.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) para contar los elementos de una secuencia que cumplen una condición.

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.

Comentarios

Este método tiene al menos un parámetro de tipo cuyo argumento de tipo Expression<TDelegate> es uno de los Func<T,TResult> tipos. Para estos parámetros, puede pasar una expresión lambda y se compilará en .Expression<TDelegate>

El Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) método genera un MethodCallExpression objeto que representa llamarse Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionExecute<TResult>(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que cuenta el número de elementos de source que cumplen la condición especificada por predicate.

Se aplica a

Count<TSource>(IQueryable<TSource>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Devuelve el número de elementos de una secuencia.

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

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IQueryable<TSource>

IQueryable<T> que contiene los elementos que se van a contar.

Devoluciones

Número de elementos de la secuencia de entrada.

Atributos

Excepciones

source es null.

El número de elementos de source es mayor que Int32.MaxValue.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Count<TSource>(IQueryable<TSource>) para contar los elementos de una secuencia.

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.

Comentarios

El Count<TSource>(IQueryable<TSource>) método genera un MethodCallExpression objeto que representa llamarse Count<TSource>(IQueryable<TSource>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionExecute<TResult>(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Count<TSource>(IQueryable<TSource>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que cuenta el número de elementos de source.

Se aplica a