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í
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> pro porovnání prvků. |
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- 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);
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>
Objekt, IQueryable<T> jehož prvky se mají porovnat s prvky objektu source2
.
- source2
- IEnumerable<TSource>
Objekt IEnumerable<T> , jehož prvky se mají porovnat s prvky první sekvence.
Návraty
true
pokud mají dvě zdrojové sekvence stejnou délku a jejich odpovídající prvky se porovnávají stejně; v opačném případě . false
Výjimky
source1
nebo source2
je null
.
Příklady
Následující příklad kódu ukazuje použití 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 rovny.
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 volání SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) sebe sama jako konstruované obecné metody. Pak předá MethodCallExpressionExecute<TResult>(Expression) metodě parametru IQueryProvider reprezentované Provider vlastností source1
.
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, zda jsou dvě zdrojové sekvence stejné.
Platí pro
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Určuje, zda jsou dvě sekvence rovny pomocí zadané IEqualityComparer<T> pro 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);
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>
Objekt, IQueryable<T> jehož prvky se mají porovnat s prvky objektu source2
.
- source2
- IEnumerable<TSource>
Objekt IEnumerable<T> , jehož prvky se mají porovnat s prvky první sekvence.
- comparer
- IEqualityComparer<TSource>
Slouží IEqualityComparer<T> k porovnání prvků.
Návraty
true
pokud mají dvě zdrojové sekvence stejnou délku a jejich odpovídající prvky se porovnávají stejně; v opačném případě . false
Výjimky
source1
nebo source2
je null
.
Poznámky
Metoda SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) vygeneruje MethodCallExpression , který představuje volání SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) sebe sama jako konstruované obecné metody. Pak předá MethodCallExpressionExecute<TResult>(Expression) metodě parametru IQueryProvider reprezentované Provider vlastností source1
.
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í k comparer
porovnání prvků.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro