Condividi tramite


Queryable.SequenceEqual Metodo

Definizione

Determina se due sequenze sono uguali.

Overload

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

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

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

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

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

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

Determina se due sequenze sono uguali usando l'operatore di confronto di uguaglianza 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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>

Oggetto IQueryable<T> di cui confrontare gli elementi da confrontare con quelli di source2.

source2
IEnumerable<TSource>

Oggetto IEnumerable<T> i cui elementi da confrontare con quelli della prima sequenza.

Restituisce

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

Attributi

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 oggetto MethodCallExpression 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
Origine:
Queryable.cs
Origine:
Queryable.cs

Determina se due sequenze sono uguali utilizzando un oggetto specificato IEqualityComparer<T> 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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>

Oggetto IQueryable<T> di cui confrontare gli elementi da confrontare con quelli di source2.

source2
IEnumerable<TSource>

Oggetto IEnumerable<T> i cui elementi da confrontare con quelli della prima sequenza.

comparer
IEqualityComparer<TSource>

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

Restituisce

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

Attributi

Eccezioni

source1 o source2 è null.

Commenti

Il SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) metodo genera un oggetto MethodCallExpression 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