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


Queryable.Contains Метод

Определение

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

Перегрузки

Contains<TSource>(IQueryable<TSource>, TSource)

Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию.

Contains<TSource>(IQueryable<TSource>, TSource, IEqualityComparer<TSource>)

Определяет, содержит ли последовательность заданный элемент, используя указанный компаратор IEqualityComparer<T>.

Contains<TSource>(IQueryable<TSource>, TSource)

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

Определяет, содержится ли указанный элемент в последовательности, используя компаратор проверки на равенство по умолчанию.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static bool Contains(System::Linq::IQueryable<TSource> ^ source, TSource item);
public static bool Contains<TSource> (this System.Linq.IQueryable<TSource> source, TSource item);
static member Contains : System.Linq.IQueryable<'Source> * 'Source -> bool
<Extension()>
Public Function Contains(Of TSource) (source As IQueryable(Of TSource), item As TSource) As Boolean

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

TSource

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

Параметры

source
IQueryable<TSource>

Объект IQueryable<T>, в котором требуется найти элемент item.

item
TSource

Объект, который требуется найти в последовательности.

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

true, если входная последовательность содержит элемент с указанным значением, в противном случае — false.

Исключения

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

Примеры

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

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

// The string to search for in the array.
string mango = "mango";

bool hasMango = fruits.AsQueryable().Contains(mango);

Console.WriteLine(
    "The array {0} contain '{1}'.",
    hasMango ? "does" : "does not",
    mango);

// This code produces the following output:
//
// The array does contain 'mango'.
Dim fruits() As String = {"apple", "banana", "mango", _
                        "orange", "passionfruit", "grape"}

' The string to search for in the array.
Dim mango As String = "mango"

Dim hasMango As Boolean = fruits.AsQueryable().Contains(mango)

MsgBox(String.Format("The array {0} contain '{1}'.", _
        IIf(hasMango, "does", "does not"), mango))

' This code produces the following output:
'
' The array does contain 'mango'.

Комментарии

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

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

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

Contains<TSource>(IQueryable<TSource>, TSource, IEqualityComparer<TSource>)

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

Определяет, содержит ли последовательность заданный элемент, используя указанный компаратор IEqualityComparer<T>.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static bool Contains(System::Linq::IQueryable<TSource> ^ source, TSource item, System::Collections::Generic::IEqualityComparer<TSource> ^ comparer);
public static bool Contains<TSource> (this System.Linq.IQueryable<TSource> source, TSource item, System.Collections.Generic.IEqualityComparer<TSource> comparer);
public static bool Contains<TSource> (this System.Linq.IQueryable<TSource> source, TSource item, System.Collections.Generic.IEqualityComparer<TSource>? comparer);
static member Contains : System.Linq.IQueryable<'Source> * 'Source * System.Collections.Generic.IEqualityComparer<'Source> -> bool
<Extension()>
Public Function Contains(Of TSource) (source As IQueryable(Of TSource), item As TSource, comparer As IEqualityComparer(Of TSource)) As Boolean

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

TSource

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

Параметры

source
IQueryable<TSource>

Объект IQueryable<T>, в котором требуется найти элемент item.

item
TSource

Объект, который требуется найти в последовательности.

comparer
IEqualityComparer<TSource>

Компаратор IEqualityComparer<T>, используемый для сравнения значений.

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

true, если входная последовательность содержит элемент с указанным значением, в противном случае — false.

Исключения

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

Комментарии

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

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

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