Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Queryable.SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

 

Data di pubblicazione: ottobre 2016

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

Spazio dei nomi:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static bool SequenceEqual<TSource>(
	this IQueryable<TSource> source1,
	IEnumerable<TSource> source2
)

Parametri

source1
Type: System.Linq.IQueryable<TSource>

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

source2
Type: System.Collections.Generic.IEnumerable<TSource>

Un IEnumerable<T> cui elementi devono essere confrontati con quelli della prima sequenza.

Valore restituito

Type: System.Boolean

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

Parametri tipo

TSource

Tipo degli elementi delle sequenze di input.

Exception Condition
ArgumentNullException

source1 o source2 è null.

Il SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) metodo genera un MethodCallExpression che rappresenta una chiamata SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) stesso come un metodo generico costruito. Passa quindi il MethodCallExpression per il Execute<TResult>(Expression) metodo il IQueryProvider rappresentato dal Provider proprietà del source1 parametro.

Il comportamento della query che si verifica in seguito all'esecuzione di una struttura ad albero dell'espressione che rappresenta una chiamata SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) dipende dall'implementazione del tipo di source1 parametro. Il comportamento previsto è che determina se le due sequenze di origine sono uguali.

Esempio di codice seguente viene illustrato come utilizzare 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.
*/

Nell'esempio seguente confronta 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.
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.1
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: