Rumah > pembangunan bahagian belakang > C++ > Operasi LINQ yang manakah Mengekalkan Susunan Elemen dalam Urutan?

Operasi LINQ yang manakah Mengekalkan Susunan Elemen dalam Urutan?

Susan Sarandon
Lepaskan: 2025-01-25 20:53:10
asal
853 orang telah melayarinya

Which LINQ Operations Preserve the Order of Elements in a Sequence?

Kekalkan susunan elemen dalam LINQ

Dalam pengaturcaraan, memproses data tersusun adalah senario biasa. Apabila memanipulasi tatasusunan menggunakan LINQ kepada Objek, adalah penting untuk memahami operasi mana yang mengekalkan susunan elemen untuk mengelakkan pengubahsuaian yang tidak disengajakan.

Operasi yang mengekalkan ketenteraman

Operasi LINQ berikut mengekalkan susunan asal elemen tatasusunan:

  • AsEnumerable: Menukar IEnumerable kepada IEnumerable bukan generik.
  • Pelakon: Tukar elemen kepada jenis lain tanpa mengubah suai tertib.
  • Concat: Menggabungkan dua atau lebih jujukan, mengekalkan susunan setiap jujukan.
  • Pilih: Unjurkan setiap elemen kepada nilai baharu tetapi mengekalkan susunannya.
  • ToArray: Mewujudkan IEnumerable ke dalam tatasusunan, mengekalkan susunan.
  • ToList: Mewujudkan IEnumerable ke dalam Senarai, mengekalkan susunan asal.

Beberapa operasi yang mengekalkan ketenteraman

Sesetengah operasi LINQ menapis atau menambah elemen tanpa menyusun semula elemen yang tinggal:

  • Berbeza: Alih keluar unsur pendua (berdasarkan pembanding kesaksamaan). (lihat penerangan di bawah)
  • Kecuali: Mengembalikan elemen yang tidak ditemui dalam urutan yang ditentukan, mengekalkan susunan urutan asal.
  • Bersilang: Mengembalikan elemen yang terdapat dalam kedua-dua jujukan, mengekalkan susunan jujukan pertama.
  • OfType: Tapis elemen jenis tertentu, mengekalkan susunan.
  • Prepend (baharu dalam .NET 4.7.1): Menambah elemen pada permulaan jujukan.
  • Langkau: Melangkau bilangan unsur yang ditentukan pada permulaan jujukan, mengekalkan susunan unsur yang tinggal.
  • SkipWhile: Langkau elemen sehingga predikat menjadi palsu, mengekalkan susunan unsur yang tinggal.
  • Ambil: Mengembalikan bilangan elemen yang ditentukan pada permulaan jujukan, mengekalkan susunan.
  • TakeWhile: Mengembalikan unsur sehingga predikat menjadi palsu, mengekalkan susunan.
  • Di mana: Menapis unsur berdasarkan predikat, mengekalkan susunan unsur padanan.
  • Zip (baharu dalam .NET 4): Gandingkan elemen daripada dua jujukan, mengekalkan susunan setiap jujukan.

Operasi yang memusnahkan pesanan

Operasi LINQ berikut tidak mengekalkan susunan asal unsur:

  • ToDictionary: Menukarkan urutan ke dalam kamus tidak mengekalkan susunan.
  • ToLookup: Sama seperti ToDictionary, pesanan tidak disimpan.

Takrif semula susunan operasi

Operasi LINQ ini secara eksplisit mengubah susunan keputusan:

  • Order By: Isih elemen dalam tertib menaik berdasarkan pemilih kekunci.
  • OrderByDescending: Isih elemen dalam tertib menurun berdasarkan pemilih kekunci.
  • Terbalik: Terbalikkan susunan unsur.
  • ThenBy: Digunakan bersama dengan OrderBy atau OrderByDescending untuk mengisih mengikut kekunci kedua.
  • ThenByDescending: Digunakan bersama OrderBy atau OrderByDescending untuk mengisih mengikut kekunci kedua dalam tertib menurun.

Keadaan istimewa

  • GroupBy: Susunan objek berkumpulan adalah berdasarkan susunan elemen pertama setiap kumpulan. Elemen-elemen dalam kumpulan dikembalikan mengikut susunan ia muncul dalam urutan sumber.
  • GroupJoin: Mengekalkan susunan unsur dalam jujukan luar dan susunan unsur yang sepadan dalam jujukan dalam untuk setiap elemen luar.
  • Sertai: Sama seperti GroupJoin, mengekalkan susunan unsur dalam jujukan luar dan sepadan dengan jujukan dalam.
  • SelectMany: Tertib ditentukan oleh susunan elemen sumber dan urutan yang dikembalikan oleh fungsi pemilih.
  • Kesatuan: Unsur-unsur daripada kedua-dua jujukan dihasilkan dalam susunan asalnya, tanpa pertindihan.

Arahan:

Berdasarkan pelaksanaan dalam .NET, Distinct telah dialihkan ke kategori "pelihara ketertiban", yang mengekalkan susunan elemen selagi tiada pembanding kesaksamaan tersuai disediakan.

Atas ialah kandungan terperinci Operasi LINQ yang manakah Mengekalkan Susunan Elemen dalam Urutan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan