Queryable.SequenceEqual Yöntem

Tanım

İki sıranın eşit olup olmadığını belirler.

Aşırı Yüklemeler

SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

Öğeleri karşılaştırmak için varsayılan eşitlik karşılaştırıcısını kullanarak iki dizinin eşit olup olmadığını belirler.

SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Öğeleri karşılaştırmak için belirtilen IEqualityComparer<T> bir kullanarak iki dizinin eşit olup olmadığını belirler.

SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

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

Öğeleri karşılaştırmak için varsayılan eşitlik karşılaştırıcısını kullanarak iki dizinin eşit olup olmadığını belirler.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static bool SequenceEqual(System::Linq::IQueryable<TSource> ^ source1, System::Collections::Generic::IEnumerable<TSource> ^ source2);
public static bool SequenceEqual<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2);
static member SequenceEqual : System.Linq.IQueryable<'Source> * seq<'Source> -> bool
<Extension()>
Public Function SequenceEqual(Of TSource) (source1 As IQueryable(Of TSource), source2 As IEnumerable(Of TSource)) As Boolean

Tür Parametreleri

TSource

Giriş dizilerinin öğelerinin türü.

Parametreler

source1
IQueryable<TSource>

IQueryable<T> öğeleri ile karşılaştırılan source2bir .

source2
IEnumerable<TSource>

İlk IEnumerable<T> dizinin öğeleriyle karşılaştırılan bir.

Döndürülenler

true İki kaynak dizisi eşit uzunluktaysa ve karşılık gelen öğeleri eşitse; aksi takdirde , false.

Özel durumlar

source1 veya source2 şeklindedir null.

Örnekler

Aşağıdaki kod örneği, iki dizinin eşit olup olmadığını belirlemek için nasıl kullanılacağını SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) gösterir. Bu örnekte diziler eşittir.

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

public static void SequenceEqualEx1()
{
    Pet pet1 = new Pet { Name = "Turbo", Age = 2 };
    Pet pet2 = new Pet { Name = "Peanut", Age = 8 };

    // Create two lists of pets.
    List<Pet> pets1 = new List<Pet> { pet1, pet2 };
    List<Pet> pets2 = new List<Pet> { pet1, pet2 };

    // Determine if the lists are equal.
    bool equal = pets1.AsQueryable().SequenceEqual(pets2);

    Console.WriteLine(
        "The lists {0} equal.",
        equal ? "are" : "are not");
}

/*
    This code produces the following output:

    The lists are equal.
*/
Class Pet
    Public Name As String
    Public Age As Integer
End Class

Shared Sub SequenceEqualEx1()
    Dim pet1 As New Pet With {.Name = "Turbo", .Age = 2}
    Dim pet2 As New Pet With {.Name = "Peanut", .Age = 8}

    ' Create two lists of pets.
    Dim pets1 As New List(Of Pet)(New Pet() {pet1, pet2})
    Dim pets2 As New List(Of Pet)(New Pet() {pet1, pet2})

    ' Determine if the lists are equal.
    Dim equal As Boolean = pets1.AsQueryable().SequenceEqual(pets2)

    ' Display the output.
    Dim text As String = IIf(equal, "are", "are not")
    MsgBox("The lists " & text & " equal.")
End Sub

'This code produces the following output:

'The lists are equal.

Aşağıdaki kod örneği, eşit olmayan iki diziyi karşılaştırır.

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

public static void SequenceEqualEx2()
{
    Pet pet1 = new Pet() { Name = "Turbo", Age = 2 };
    Pet pet2 = new Pet() { Name = "Peanut", Age = 8 };

    // Create two lists of pets.
    List<Pet> pets1 = new List<Pet> { pet1, pet2 };
    List<Pet> pets2 = new List<Pet> {
        new Pet { Name = "Turbo", Age = 2 },
        new Pet { Name = "Peanut", Age = 8 }
    };

    // Determine if the lists are equal.
    bool equal = pets1.AsQueryable().SequenceEqual(pets2);

    Console.WriteLine("The lists {0} equal.", equal ? "are" : "are NOT");
}

/*
    This code produces the following output:

    The lists are NOT equal.
*/
Class Pet
    Public Name As String
    Public Age As Integer
End Class

Shared Sub SequenceEqualEx2()
    Dim pet1 As New Pet With {.Name = "Turbo", .Age = 2}
    Dim pet2 As New Pet With {.Name = "Peanut", .Age = 8}

    ' Create two lists of pets.
    Dim pets1 As New List(Of Pet)()
    pets1.Add(pet1)
    pets1.Add(pet2)

    Dim pets2 As New List(Of Pet)()
    pets2.Add(New Pet With {.Name = "Turbo", .Age = 2})
    pets2.Add(New Pet With {.Name = "Peanut", .Age = 8})

    ' Determine if the lists are equal.
    Dim equal As Boolean = pets1.AsQueryable().SequenceEqual(pets2)

    ' Display the output.
    Dim text As String = IIf(equal, "are", "are not")
    MsgBox("The lists " & text & " equal.")
End Sub

' This code produces the following output:

' The lists are not equal.

Açıklamalar

yöntemi, SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) bir oluşturur. Ardından parametresinin MethodCallExpressionExecute<TResult>(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource1 iletir.

Çağrıyı SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<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 source1 bağlıdır. Beklenen davranış, iki kaynak dizisinin eşit olup olmadığını belirlemesidir.

Şunlara uygulanır

SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

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

Öğeleri karşılaştırmak için belirtilen IEqualityComparer<T> bir kullanarak iki dizinin eşit olup olmadığını belirler.

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

Tür Parametreleri

TSource

Giriş dizilerinin öğelerinin türü.

Parametreler

source1
IQueryable<TSource>

IQueryable<T> öğeleri ile karşılaştırılan source2bir .

source2
IEnumerable<TSource>

İlk IEnumerable<T> dizinin öğeleriyle karşılaştırılan bir.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T> Öğeleri karşılaştırmak için kullanılacak bir.

Döndürülenler

true İki kaynak dizisi eşit uzunluktaysa ve karşılık gelen öğeleri eşitse; aksi takdirde , false.

Özel durumlar

source1 veya source2 şeklindedir null.

Açıklamalar

yöntemi, SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) kendisini oluşturulan genel bir MethodCallExpression yöntem olarak çağıran SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) bir oluşturur. Ardından parametresinin MethodCallExpressionExecute<TResult>(Expression) özelliği tarafından temsil edilen yöntemine IQueryProviderProvidersource1 iletir.

Çağrıyı SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<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 source1 bağlıdır. Beklenen davranış, öğeleri karşılaştırmak için kullanarak comparer iki kaynak dizisinin eşit olup olmadığını belirlemesidir.

Şunlara uygulanır