Queryable.SequenceEqual Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menentukan apakah dua urutan sama.
Overload
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) |
Menentukan apakah dua urutan sama dengan menggunakan perbandingan kesetaraan default untuk membandingkan elemen. |
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) |
Menentukan apakah dua urutan sama dengan menggunakan IEqualityComparer<T> tertentu untuk membandingkan elemen. |
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>)
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
Menentukan apakah dua urutan sama dengan menggunakan perbandingan kesetaraan default untuk membandingkan elemen.
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
Jenis parameter
- TSource
Jenis elemen urutan input.
Parameter
- source1
- IQueryable<TSource>
IQueryable<T> yang elemennya dibandingkan dengan elemen source2
.
- source2
- IEnumerable<TSource>
IEnumerable<T> yang elemennya dibandingkan dengan urutan pertama.
Mengembalikan
true
jika dua urutan sumber memiliki panjang yang sama dan elemen yang sesuai berbanding sama; jika tidak, false
.
Pengecualian
source1
atau source2
null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) untuk menentukan apakah dua urutan sama. Dalam contoh ini urutannya sama.
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.
Contoh kode berikut membandingkan dua urutan yang tidak sama.
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.
Keterangan
Metode SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) menghasilkan MethodCallExpression yang mewakili panggilan SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) itu sendiri sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke metode Execute<TResult>(Expression)IQueryProvider yang diwakili oleh properti Provider parameter source1
.
Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>) tergantung pada implementasi jenis parameter source1
. Perilaku yang diharapkan adalah menentukan apakah kedua urutan sumber sama.
Berlaku untuk
SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
- Sumber:
- Queryable.cs
Menentukan apakah dua urutan sama dengan menggunakan IEqualityComparer<T> tertentu untuk membandingkan elemen.
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
Jenis parameter
- TSource
Jenis elemen urutan input.
Parameter
- source1
- IQueryable<TSource>
IQueryable<T> yang elemennya dibandingkan dengan elemen source2
.
- source2
- IEnumerable<TSource>
IEnumerable<T> yang elemennya dibandingkan dengan urutan pertama.
- comparer
- IEqualityComparer<TSource>
IEqualityComparer<T> yang digunakan untuk membandingkan elemen.
Mengembalikan
true
jika dua urutan sumber memiliki panjang yang sama dan elemen yang sesuai berbanding sama; jika tidak, false
.
Pengecualian
source1
atau source2
null
.
Keterangan
Metode SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) menghasilkan MethodCallExpression yang mewakili panggilan SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) itu sendiri sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke metode Execute<TResult>(Expression)IQueryProvider yang diwakili oleh properti Provider parameter source1
.
Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan SequenceEqual<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) tergantung pada implementasi jenis parameter source1
. Perilaku yang diharapkan adalah menentukan apakah kedua urutan sumber sama dengan menggunakan comparer
untuk membandingkan elemen.