Queryable.Count Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí počet prvků v posloupnosti.
Přetížení
| Name | Description |
|---|---|
| Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Vrátí počet prvků v zadané sekvenci, která splňuje podmínku. |
| Count<TSource>(IQueryable<TSource>) |
Vrátí počet prvků v posloupnosti. |
Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vrátí počet prvků v zadané sekvenci, která splňuje podmínku.
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
Parametry typu
- TSource
Typ prvků .source
Parametry
- source
- IQueryable<TSource>
Obsahuje IQueryable<T> prvky, které se mají spočítat.
- predicate
- Expression<Func<TSource,Boolean>>
Funkce k otestování jednotlivých prvků pro podmínku.
Návraty
Počet prvků v sekvenci, které splňují podmínku v predikátové funkci.
- Atributy
Výjimky
source nebo predicate je null.
Počet prvků je source větší než Int32.MaxValue.
Příklady
Následující příklad kódu ukazuje, jak použít Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) k počítání prvků v sekvenci, která splňuje podmínku.
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.
Poznámky
Tato metoda má alespoň jeden parametr typu Expression<TDelegate> , jehož argument typu je jedním z Func<T,TResult> typů. Pro tyto parametry můžete předat výraz lambda a bude zkompilován do Expression<TDelegate>.
Metoda Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) vygeneruje MethodCallExpression , která představuje samotné volání Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderExecute<TResult>(Expression) reprezentované Provider vlastností parametrusource.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , závisí na implementaci typu parametru source . Očekávané chování je, že spočítá počet položek, které source splňují podmínku určenou predicate.
Platí pro
Count<TSource>(IQueryable<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Vrátí počet prvků v posloupnosti.
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
Parametry typu
- TSource
Typ prvků .source
Parametry
- source
- IQueryable<TSource>
Obsahuje IQueryable<T> prvky, které se mají spočítat.
Návraty
Počet prvků ve vstupní sekvenci
- Atributy
Výjimky
source je null.
Počet prvků je source větší než Int32.MaxValue.
Příklady
Následující příklad kódu ukazuje, jak použít Count<TSource>(IQueryable<TSource>) k počítání prvků v sekvenci.
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.
Poznámky
Metoda Count<TSource>(IQueryable<TSource>) vygeneruje MethodCallExpression , která představuje samotné volání Count<TSource>(IQueryable<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderExecute<TResult>(Expression) reprezentované Provider vlastností parametrusource.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání Count<TSource>(IQueryable<TSource>) , závisí na implementaci typu parametru source . Očekávané chování je, že počítá počet položek v source.