Condividi tramite


Queryable.SequenceEqual Metodo

Definizione

Consente di determinare se due sequenze sono uguali.

Overload

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

Determina se due sequenze sono uguali utilizzando l'operatore di confronto uguaglianze predefinito per confrontare gli elementi.

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

Determina se due sequenze sono uguali utilizzando un oggetto IEqualityComparer<T> specificato per confrontare gli elementi.

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

Origine:
Queryable.cs
Origine:
Queryable.cs
Origine:
Queryable.cs

Determina se due sequenze sono uguali utilizzando l'operatore di confronto uguaglianze predefinito per confrontare gli elementi.

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

Parametri di tipo

TSource

Tipo degli elementi delle sequenze di input.

Parametri

source1
IQueryable<TSource>

Un oggetto IQueryable<T> cui elementi devono venire confrontati con quelli di source2.

source2
IEnumerable<TSource>

Un oggetto IEnumerable<T> i cui elementi devono venire confrontati con quelli della prima sequenza.

Restituisce

true se le due sequenze di origine sono di lunghezza uguale e gli elementi corrispondenti risultano uguali; in caso contrario, false.

Eccezioni

source1 o source2 è null.

Esempio

Nell'esempio di codice seguente viene illustrato come usare SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) per determinare se due sequenze sono uguali. In questo esempio le sequenze sono uguali.

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.

Nell'esempio di codice seguente vengono confrontate due sequenze che non sono uguali.

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.

Commenti

Il SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) metodo genera un MethodCallExpression oggetto che rappresenta la chiamata SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) stessa come metodo generico costruito. Passa quindi l'oggetto MethodCallExpression al Execute<TResult>(Expression) metodo dell'oggetto IQueryProvider rappresentato dalla Provider proprietà del source1 parametro.

Il comportamento della query che si verifica come risultato dell'esecuzione di un albero delle espressioni che rappresenta la chiamata SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) dipende dall'implementazione del tipo del source1 parametro. Il comportamento previsto è che determina se le due sequenze di origine sono uguali.

Si applica a

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

Origine:
Queryable.cs
Origine:
Queryable.cs
Origine:
Queryable.cs

Determina se due sequenze sono uguali utilizzando un oggetto IEqualityComparer<T> specificato per confrontare gli elementi.

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

Parametri di tipo

TSource

Tipo degli elementi delle sequenze di input.

Parametri

source1
IQueryable<TSource>

Un oggetto IQueryable<T> cui elementi devono venire confrontati con quelli di source2.

source2
IEnumerable<TSource>

Un oggetto IEnumerable<T> i cui elementi devono venire confrontati con quelli della prima sequenza.

comparer
IEqualityComparer<TSource>

Oggetto IEqualityComparer<T> da usare per confrontare gli elementi.

Restituisce

true se le due sequenze di origine sono di lunghezza uguale e gli elementi corrispondenti risultano uguali; in caso contrario, false.

Eccezioni

source1 o source2 è null.

Commenti

Il SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) metodo genera un MethodCallExpression oggetto che rappresenta la chiamata SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) stessa come metodo generico costruito. Passa quindi l'oggetto MethodCallExpression al Execute<TResult>(Expression) metodo dell'oggetto IQueryProvider rappresentato dalla Provider proprietà del source1 parametro.

Il comportamento della query che si verifica come risultato dell'esecuzione di un albero delle espressioni che rappresenta la chiamata SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) dipende dall'implementazione del tipo del source1 parametro. Il comportamento previsto è che determina se le due sequenze di origine sono uguali usando comparer per confrontare gli elementi.

Si applica a