Compartir vía


Queryable.Count Método

Definición

Devuelve el número de elementos de una secuencia.

Sobrecargas

Count<TSource>(IQueryable<TSource>)

Devuelve el número de elementos de una secuencia.

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

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

Count<TSource>(IQueryable<TSource>)

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

El número de elementos de la secuencia de entrada.

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

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

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

Devuelve el número de elementos de la secuencia especificada que satisfacen 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);
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>

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

predicate
Expression<Func<TSource,Boolean>>

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

Devoluciones

El número de elementos de la secuencia que satisfacen la condición de la función de predicado.

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 == 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.

Comentarios

Este método tiene al menos un parámetro de tipo Expression<TDelegate> cuyo argumento de tipo 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 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