Queryable.SequenceEqual Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, zda jsou dvě sekvence stejné.
Přetížení
| Name | Description |
|---|---|
| SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Určuje, zda jsou dvě sekvence rovny pomocí výchozího porovnávače rovnosti k porovnání prvků. |
| SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Určuje, zda jsou dvě sekvence rovny pomocí zadané IEqualityComparer<T> k porovnání prvků. |
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Určuje, zda jsou dvě sekvence rovny pomocí výchozího porovnávače rovnosti k porovnání prvků.
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
Parametry typu
- TSource
Typ prvků vstupních sekvencí.
Parametry
- source1
- IQueryable<TSource>
Jejíž IQueryable<T> prvky, které se mají porovnat s prvky .source2
- source2
- IEnumerable<TSource>
Jejíž IEnumerable<T> prvky se mají porovnat s prvky první sekvence.
Návraty
truejsou-li dvě zdrojové sekvence stejnou délkou a jejich odpovídající prvky se porovnávají stejně; v opačném případě . false
- Atributy
Výjimky
source1 nebo source2 je null.
Příklady
Následující příklad kódu ukazuje, jak použít SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) k určení, zda jsou dvě sekvence rovny. V tomto příkladu jsou sekvence stejné.
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.
Následující příklad kódu porovnává dvě sekvence, které nejsou stejné.
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.
Poznámky
Metoda SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) vygeneruje MethodCallExpression , která představuje samotné volání SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderExecute<TResult>(Expression) reprezentované Provider vlastností parametrusource1.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) , závisí na implementaci typu parametru source1 . Očekávané chování je, že určuje, jestli jsou dvě zdrojové sekvence stejné.
Platí pro
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Určuje, zda jsou dvě sekvence rovny pomocí zadané IEqualityComparer<T> k porovnání prvků.
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
Parametry typu
- TSource
Typ prvků vstupních sekvencí.
Parametry
- source1
- IQueryable<TSource>
Jejíž IQueryable<T> prvky, které se mají porovnat s prvky .source2
- source2
- IEnumerable<TSource>
Jejíž IEnumerable<T> prvky se mají porovnat s prvky první sekvence.
- comparer
- IEqualityComparer<TSource>
Slouží IEqualityComparer<T> k porovnání prvků.
Návraty
truejsou-li dvě zdrojové sekvence stejnou délkou a jejich odpovídající prvky se porovnávají stejně; v opačném případě . false
- Atributy
Výjimky
source1 nebo source2 je null.
Poznámky
Metoda SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) vygeneruje MethodCallExpression , která představuje samotné volání SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderExecute<TResult>(Expression) reprezentované Provider vlastností parametrusource1.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, který představuje volání SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) , závisí na implementaci typu parametru source1 . Očekávané chování je, že určuje, zda jsou dvě zdrojové sekvence rovny pomocí porovnání comparer prvků.