Queryable.Any Yöntem

Tanım

Bir dizinin herhangi bir öğesinin var olup olmadığını veya bir IQueryable<T> koşulu karşılayıp sağlamadığını belirler.

Aşırı Yüklemeler

Any<TSource>(IQueryable<TSource>)

Bir dizinin herhangi bir öğe içerip içermediğini belirler.

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

Bir dizi öğesinin bir koşulu karşılayıp karşılamayacağını belirler.

Any<TSource>(IQueryable<TSource>)

Kaynak:
Queryable.cs
Kaynak:
Queryable.cs
Kaynak:
Queryable.cs

Bir dizinin herhangi bir öğe içerip içermediğini belirler.

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

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IQueryable<TSource>

Boş olup olmadığını denetlemek için bir dizi.

Döndürülenler

true kaynak dizisi herhangi bir öğe içeriyorsa; aksi takdirde , false.

Özel durumlar

source, null değeridir.

Örnekler

Aşağıdaki kod örneği, bir dizinin herhangi bir öğe içerip içermediğini belirlemek için nasıl kullanılacağını Any<TSource>(IQueryable<TSource>) gösterir.

List<int> numbers = new List<int> { 1, 2 };

// Determine if the list contains any elements.
bool hasElements = numbers.AsQueryable().Any();

Console.WriteLine("The list {0} empty.",
    hasElements ? "is not" : "is");

// This code produces the following output:
//
// The list is not empty.
Dim numbers As New List(Of Integer)(New Integer() {1, 2})

' Determine if the list contains any elements.
Dim hasElements As Boolean = numbers.AsQueryable().Any()

MsgBox(String.Format("The list {0} empty.", _
    IIf(hasElements, "is not", "is")))

' This code produces the following output:
'
' The list is not empty.

Yöntemin Any<TSource>(IQueryable<TSource>) döndürdüğü Boole değeri genellikle bir where yan tümcesinin (Where Visual Basic yan tümcesi) koşulunda veya yönteme doğrudan çağrıda Where<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) kullanılır. Aşağıdaki örnekte yönteminin bu kullanımı gösterilmektedir Any .

class Pet
{
    public string Name { get; set; }
    public int Age { get; set; }
}
class Person
{
    public string LastName { get; set; }
    public Pet[] Pets { get; set; }
}

public static void AnyEx2()
{
    List<Person> people = new List<Person>
        { new Person { LastName = "Haas",
                       Pets = new Pet[] { new Pet { Name="Barley", Age=10 },
                                          new Pet { Name="Boots", Age=14 },
                                          new Pet { Name="Whiskers", Age=6 }}},
          new Person { LastName = "Fakhouri",
                       Pets = new Pet[] { new Pet { Name = "Snowball", Age = 1}}},
          new Person { LastName = "Antebi",
                       Pets = new Pet[] { }},
          new Person { LastName = "Philips",
                       Pets = new Pet[] { new Pet { Name = "Sweetie", Age = 2},
                                          new Pet { Name = "Rover", Age = 13}} }
        };

    // Determine which people have a non-empty Pet array.
    IEnumerable<string> names = from person in people
                                where person.Pets.AsQueryable().Any()
                                select person.LastName;

    foreach (string name in names)
        Console.WriteLine(name);

    /* This code produces the following output:

       Haas
       Fakhouri
       Philips
    */
}
Structure Pet
    Public Name As String
    Public Age As Integer
End Structure

Structure Person
    Public LastName As String
    Public Pets() As Pet
End Structure

Sub AnyEx2()
    Dim people As New List(Of Person)(New Person() _
        {New Person With {.LastName = "Haas", _
                          .Pets = New Pet() {New Pet With {.Name = "Barley", .Age = 10}, _
                                             New Pet With {.Name = "Boots", .Age = 14}, _
                                             New Pet With {.Name = "Whiskers", .Age = 6}}}, _
          New Person With {.LastName = "Fakhouri", _
                           .Pets = New Pet() {New Pet With {.Name = "Snowball", .Age = 1}}}, _
          New Person With {.LastName = "Antebi", _
                           .Pets = New Pet() {}}, _
          New Person With {.LastName = "Philips", _
                           .Pets = New Pet() {New Pet With {.Name = "Sweetie", .Age = 2}, _
                                              New Pet With {.Name = "Rover", .Age = 13}}}})

    ' Determine which people have a non-empty Pet array.
    Dim names = From person In people _
                Where person.Pets.AsQueryable().Any() _
                Select person.LastName

    For Each name As String In names
        Console.WriteLine(name)
    Next

    ' This code produces the following output:
    '
    ' Haas
    ' Fakhouri
    ' Philips

End Sub

Açıklamalar

yöntemi, Any<TSource>(IQueryable<TSource>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağırmayı Any<TSource>(IQueryable<TSource>) temsil eden bir oluşturur. Daha sonra parametresinin özelliği tarafından Provider temsil edilen yöntemine IQueryProvidersource iletirMethodCallExpression.Execute<TResult>(Expression)

Çağrıyı Any<TSource>(IQueryable<TSource>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source bağlıdır. Beklenen davranış, herhangi bir öğe içerip içermediğini source belirlemesidir.

Şunlara uygulanır

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

Kaynak:
Queryable.cs
Kaynak:
Queryable.cs
Kaynak:
Queryable.cs

Bir dizi öğesinin bir koşulu karşılayıp karşılamayacağını belirler.

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

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IQueryable<TSource>

Öğeleri koşul için test edilen bir dizi.

predicate
Expression<Func<TSource,Boolean>>

Bir koşul için her öğeyi test etmek için bir işlev.

Döndürülenler

true Kaynak dizideki herhangi bir öğe testi belirtilen koşulda geçirirse; aksi takdirde , false.

Özel durumlar

source veya predicate şeklindedir null.

Örnekler

Aşağıdaki kod örneği, bir dizideki herhangi bir öğenin bir koşulu karşılayıp karşılamadığını belirlemek için nasıl kullanılacağını Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) gösterir.

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

public static void AnyEx3()
{
    // Create an array of Pet objects.
    Pet[] pets =
        { new Pet { Name="Barley", Age=8, Vaccinated=true },
          new Pet { Name="Boots", Age=4, Vaccinated=false },
          new Pet { Name="Whiskers", Age=1, Vaccinated=false } };

    // Determine whether any pets over age 1 are also unvaccinated.
    bool unvaccinated =
        pets.AsQueryable().Any(p => p.Age > 1 && p.Vaccinated == false);

    Console.WriteLine(
        "There {0} unvaccinated animals over age one.",
        unvaccinated ? "are" : "are not any");
}

// This code produces the following output:
//
//  There are unvaccinated animals over age one.
Structure Pet
    Dim Name As String
    Dim Age As Integer
    Dim Vaccinated As Boolean
End Structure

Shared Sub AnyEx3()
    ' Create an array of Pet objects.
    Dim pets() As Pet = _
        {New Pet With {.Name = "Barley", .Age = 8, .Vaccinated = True}, _
         New Pet With {.Name = "Boots", .Age = 4, .Vaccinated = False}, _
         New Pet With {.Name = "Whiskers", .Age = 1, .Vaccinated = False}}

    ' Determine whether any pets over age 1 are also unvaccinated.
    Dim unvaccinated As Boolean = _
    pets.AsQueryable().Any(Function(p) p.Age > 1 And p.Vaccinated = False)

    MsgBox(String.Format( _
        "There {0} unvaccinated animals over age one.", _
        IIf(unvaccinated, "are", "are not any") _
    ))
End Sub

' This code produces the following output:
'
'  There are unvaccinated animals over age one.

Açıklamalar

Bu yöntem, tür bağımsız değişkeni türlerden Expression<TDelegate> biri olan türünde en az bir parametreye Func<T,TResult> sahiptir. Bu parametreler için bir lambda ifadesi geçirebilirsiniz ve bu ifade bir Expression<TDelegate>olarak derlenir.

yöntemi, Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağırmayı Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) temsil eden bir oluşturur. Daha sonra parametresinin özelliği tarafından Provider temsil edilen yöntemine IQueryProvidersource iletirMethodCallExpression.Execute<TResult>(Expression)

Çağrıyı Any<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) temsil eden bir ifade ağacının yürütülmesi sonucunda oluşan sorgu davranışı, parametre türünün uygulanmasına source bağlıdır. Beklenen davranış, öğesinden herhangi birinin tarafından predicatebelirtilen koşulu karşılayıp karşılamadığını belirlemesidirsource.

Şunlara uygulanır