Поделиться через


Queryable.LongCount Метод

Определение

Возвращает значение типа Int64, представляющее число элементов в последовательности.

Перегрузки

LongCount<TSource>(IQueryable<TSource>)

Возвращает значение типа Int64, представляющее общее число элементов в последовательности.

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

Возвращает значение типа Int64, представляющее число элементов последовательности, удовлетворяющих заданному условию.

LongCount<TSource>(IQueryable<TSource>)

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

Возвращает значение типа Int64, представляющее общее число элементов в последовательности.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static long LongCount(System::Linq::IQueryable<TSource> ^ source);
public static long LongCount<TSource> (this System.Linq.IQueryable<TSource> source);
static member LongCount : System.Linq.IQueryable<'Source> -> int64
<Extension()>
Public Function LongCount(Of TSource) (source As IQueryable(Of TSource)) As Long

Параметры типа

TSource

Тип элементов source.

Параметры

source
IQueryable<TSource>

Объект IQueryable<T>, содержащий элементы, которые требуется подсчитать.

Возвращаемое значение

Число элементов в source.

Исключения

source имеет значение null.

Количество элементов превышает Значение Int64.MaxValue.

Примеры

В следующем примере кода показано, как использовать для LongCount<TSource>(IQueryable<TSource>) подсчета элементов в массиве.

string[] fruits = { "apple", "banana", "mango",
                      "orange", "passionfruit", "grape" };

long count = fruits.AsQueryable().LongCount();

Console.WriteLine("There are {0} fruits in the collection.", count);

/*
    This code produces the following output:

    There are 6 fruits in the collection.
*/
Dim fruits() As String = {"apple", "banana", "mango", _
                      "orange", "passionfruit", "grape"}

Dim count As Long = fruits.AsQueryable().LongCount()

MsgBox(String.Format("There are {0} fruits in the collection.", count))

' This code produces the following output:

' There are 6 fruits in the collection.

Комментарии

Метод LongCount<TSource>(IQueryable<TSource>) создает объект , MethodCallExpression представляющий вызов LongCount<TSource>(IQueryable<TSource>) как сконструированный универсальный метод. Затем он передает в MethodCallExpressionExecute<TResult>(Expression) метод объекта , IQueryProvider представленный свойством Providersource параметра .

Поведение запроса, возникающее в результате выполнения дерева выражений, представляющего вызов LongCount<TSource>(IQueryable<TSource>) , зависит от реализации типа source параметра. Ожидаемое поведение заключается в том, что он подсчитывает количество элементов в source и возвращает .Int64

Применяется к

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

Исходный код:
Queryable.cs
Исходный код:
Queryable.cs
Исходный код:
Queryable.cs

Возвращает значение типа Int64, представляющее число элементов последовательности, удовлетворяющих заданному условию.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static long LongCount(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static long LongCount<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member LongCount : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> int64
<Extension()>
Public Function LongCount(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As Long

Параметры типа

TSource

Тип элементов source.

Параметры

source
IQueryable<TSource>

Объект IQueryable<T>, содержащий элементы, которые требуется подсчитать.

predicate
Expression<Func<TSource,Boolean>>

Функция для проверки каждого элемента на соответствие условию.

Возвращаемое значение

Число элементов последовательности source, удовлетворяющих условию функции предиката.

Исключения

Параметр source или predicate имеет значение null.

Количество соответствующих элементов превышает Значение Int64.MaxValue.

Примеры

В следующем примере кода показано, как использовать для LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) подсчета элементов в массиве, удовлетворяющих условию.

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void LongCountEx2()
{
    Pet[] pets = { new Pet { Name="Barley", Age=8 },
                   new Pet { Name="Boots", Age=4 },
                   new Pet { Name="Whiskers", Age=1 } };

    const int Age = 3;

    // Count the number of Pet objects where Pet.Age is greater than 3.
    long count = pets.AsQueryable().LongCount(pet => pet.Age > Age);

    Console.WriteLine("There are {0} animals over age {1}.", count, Age);
}

/*
    This code produces the following output:

    There are 2 animals over age 3.
*/
Structure Pet
    Public Name As String
    Public Age As Integer
End Structure

Shared Sub LongCountEx2()
    Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
                       New Pet With {.Name = "Boots", .Age = 4}, _
                       New Pet With {.Name = "Whiskers", .Age = 1}}

    Const Age As Integer = 3

    ' Count the number of Pet objects where Pet.Age is greater than 3.
    Dim count As Long = pets.AsQueryable().LongCount(Function(Pet) Pet.Age > Age)

    MsgBox(String.Format("There are {0} animals over age {1}.", count, Age))
End Sub

' This code produces the following output:

' There are 2 animals over age 3.

Комментарии

Этот метод имеет по крайней мере один параметр типа Expression<TDelegate> , аргумент типа которого является одним из Func<T,TResult> типов. Для этих параметров можно передать лямбда-выражение, и оно будет скомпилировано Expression<TDelegate>в .

Метод LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) создает объект , MethodCallExpression представляющий вызов LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) как сконструированный универсальный метод. Затем он передает в MethodCallExpressionExecute<TResult>(Expression) метод объекта , IQueryProvider представленный свойством Providersource параметра .

Поведение запроса, возникающее в результате выполнения дерева выражений, представляющего вызов LongCount<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) , зависит от реализации типа source параметра. Ожидаемое поведение заключается в том, что он подсчитывает количество элементов в source , удовлетворяющих условию, заданному параметром , predicate и возвращает .Int64

Применяется к