Queryable.SequenceEqual Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bepaalt of twee reeksen gelijk zijn.
Overloads
| Name | Description |
|---|---|
| SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Bepaalt of twee reeksen gelijk zijn met behulp van de standaard gelijkheidsgelijker om elementen te vergelijken. |
| SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Bepaalt of twee reeksen gelijk zijn met behulp van een opgegeven IEqualityComparer<T> om elementen te vergelijken. |
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
Bepaalt of twee reeksen gelijk zijn met behulp van de standaard gelijkheidsgelijker om elementen te vergelijken.
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
Type parameters
- TSource
Het type van de elementen van de invoerreeksen.
Parameters
- source1
- IQueryable<TSource>
Een IQueryable<T> waarvan de elementen moeten worden vergeleken met die van source2.
- source2
- IEnumerable<TSource>
Een IEnumerable<T> waarvan de elementen moeten worden vergeleken met die van de eerste reeks.
Retouren
true als de twee bronreeksen gelijke lengte hebben en de bijbehorende elementen gelijk zijn; anders, false.
Uitzonderingen
source1 of source2 is null.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u kunt gebruiken SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) om te bepalen of twee reeksen gelijk zijn. In dit voorbeeld zijn de reeksen gelijk.
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.
In het volgende codevoorbeeld worden twee reeksen vergeleken die niet gelijk zijn.
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.
Opmerkingen
De SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de Execute<TResult>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source1 parameter.
Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) , is afhankelijk van de implementatie van het type source1 parameter. Het verwachte gedrag is dat wordt bepaald of de twee bronreeksen gelijk zijn.
Van toepassing op
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
Bepaalt of twee reeksen gelijk zijn met behulp van een opgegeven IEqualityComparer<T> om elementen te vergelijken.
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);
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
Type parameters
- TSource
Het type van de elementen van de invoerreeksen.
Parameters
- source1
- IQueryable<TSource>
Een IQueryable<T> waarvan de elementen moeten worden vergeleken met die van source2.
- source2
- IEnumerable<TSource>
Een IEnumerable<T> waarvan de elementen moeten worden vergeleken met die van de eerste reeks.
- comparer
- IEqualityComparer<TSource>
Een IEqualityComparer<T> te gebruiken om elementen te vergelijken.
Retouren
true als de twee bronreeksen gelijke lengte hebben en de bijbehorende elementen gelijk zijn; anders, false.
Uitzonderingen
source1 of source2 is null.
Opmerkingen
De SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) methode genereert een MethodCallExpression die zichzelf aanroept SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de Execute<TResult>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source1 parameter.
Het querygedrag dat optreedt als gevolg van het uitvoeren van een expressiestructuur die aanroept SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) , is afhankelijk van de implementatie van het type source1 parameter. Het verwachte gedrag is dat wordt bepaald of de twee bronreeksen gelijk zijn aan het gebruik comparer om elementen te vergelijken.