Queryable.Count Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Returnerar antalet element i en sekvens.
Överlagringar
| Name | Description |
|---|---|
| Count<TSource>(IQueryable<TSource>) |
Returnerar antalet element i en sekvens. |
| Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Returnerar antalet element i den angivna sekvensen som uppfyller ett villkor. |
Count<TSource>(IQueryable<TSource>)
Returnerar antalet element i en sekvens.
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
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IQueryable<TSource>
Som IQueryable<T> innehåller de element som ska räknas.
Returer
Antalet element i indatasekvensen.
Undantag
source är null.
Antalet element i source är större än Int32.MaxValue.
Exempel
Följande kodexempel visar hur du använder Count<TSource>(IQueryable<TSource>) för att räkna elementen i en sekvens.
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.
Kommentarer
Metoden Count<TSource>(IQueryable<TSource>) genererar en MethodCallExpression som representerar att anropa Count<TSource>(IQueryable<TSource>) sig själv som en konstruerad generisk metod. Den skickar sedan till Execute<TResult>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Count<TSource>(IQueryable<TSource>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det räknar antalet objekt i source.
Gäller för
Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
Returnerar antalet element i den angivna sekvensen som uppfyller ett villkor.
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
Typparametrar
- TSource
Typen av element sourcei .
Parametrar
- source
- IQueryable<TSource>
En IQueryable<T> som innehåller de element som ska räknas.
- predicate
- Expression<Func<TSource,Boolean>>
En funktion för att testa varje element för ett villkor.
Returer
Antalet element i sekvensen som uppfyller villkoret i predikatfunktionen.
Undantag
source eller predicate är null.
Antalet element i source är större än Int32.MaxValue.
Exempel
Följande kodexempel visar hur du använder Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) för att räkna elementen i en sekvens som uppfyller ett villkor.
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.
Kommentarer
Den här metoden har minst en parameter av typen Expression<TDelegate> vars typargument är en av typerna Func<T,TResult> . För dessa parametrar kan du skicka ett lambda-uttryck och kompileras till en Expression<TDelegate>.
Metoden Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) genererar en MethodCallExpression som representerar att anropa Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) sig själv som en konstruerad generisk metod. Den skickar sedan till Execute<TResult>(Expression) metoden för den IQueryProvider som representeras av Provider egenskapen för parameternsource.MethodCallExpression
Frågebeteendet som uppstår till följd av att ett uttrycksträd som representerar anrop Count<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) körs beror på implementeringen av source parametertypen. Det förväntade beteendet är att det räknar antalet objekt i source som uppfyller villkoret som anges av predicate.