Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22702|Jawab: 0

[Sumber] Ada beberapa jenis rollup untuk koleksi di C#

[Salin tautan]
Diposting pada 11/11/2014 08.44.59 | | |
Koleksi yang mewakili sekumpulan objek yang dapat diakses dengan melintasi setiap elemen (khususnya, dapat diakses menggunakan perulangan foreach)
Koleksi berisi beberapa elemen, yaitu ada objek kelas koleksi dan objek elemen N

Karena setiap kelas koleksi mengimplementasikan antarmuka IEnumerable, setiap objek kelas koleksi memiliki metode GetEnumerator(), yang dapat mengembalikan objek yang mengimplementasikan antarmuka IEnumerator, yang bukan objek kelas koleksi atau objek kelas elemen koleksi, itu adalah objek kelas independen. Objek ini memungkinkan Anda untuk mengulangi setiap objek elemen dalam objek kelas koleksi

Jika kelas koleksi adalah kelas koleksi yang ditentukan pengguna, pengguna harus mengimplementasikan metode GetEnumerator(), jika tidak, loop tidak dapat digunakan. Tentu saja, kelas IEnumerator yang sesuai dengan kelas koleksi kustom ini (kelas yang mengimplementasikan antarmuka) juga harus disesuaikan

Misalnya, IEnumerator yang sesuai dengan kelas koleksi ArrayList adalah ArrayListEnumeratorSimple
            IEnumerator yang sesuai dengan kelas koleksi Array adalah SZArrayEnumerator
      (Tidak ada kelas yang tercakup dalam dokumentasi Pustaka Kelas .NET Framework (MSDN))

1. Antarmuka dalam System.Colloctions yang mewakili perilaku koleksi adalah:
1) ICollection
Tentukan ukuran, jumlah enum, dan metode sinkronisasi untuk semua koleksi. Berasal dari IEnumerable
Ini mendefinisikan perilaku paling dasar dari kelas koleksi, dan semua kelas koleksi mengimplementasikan antarmuka ini (antarmuka dasar)
Tetapi perilakunya terlalu mendasar: ini terutama adalah properti Count, dan tidak masuk akal untuk menerapkannya sendiri

2) IEnumerable
Mengekspos enumerasi yang mendukung iterasi sederhana pada satu set
Ini hanya memiliki satu metode, GetEnumerator(), yang mengembalikan antarmuka IEnumerator yang dapat melaluinya melintasi koleksi
Pada dasarnya semua kelas koleksi mengimplementasikan antarmuka ini

3) IList
Implementasi IList adalah kumpulan nilai yang dapat diurutkan dan dapat diakses oleh indeks untuk anggotanya, dan itu sendiri mengimplementasikan antarmuka ICollection dan IEnumerable
adalah kelas dasar abstrak untuk semua daftar. Ada tiga kategori implementasi IList: hanya-baca, ukuran tetap, dan ukuran variabel.

4) Identitas
Implementasi IDictionary adalah kumpulan pasangan kunci/nilai yang mengimplementasikan antarmuka ICollection dan IEnumerable
adalah antarmuka dasar dari kumpulan pasangan kunci/nilai. Ada tiga kategori implementasi IDictionary: hanya-baca, ukuran tetap, dan ukuran variabel.
IDictionary dapat disebut kamus, peta, atau daftar shash, dan mengakses nilai berdasarkan kunci (dari jenis apa pun).

2. Kelas koleksi yang dapat digunakan langsung di System.Collections adalah:
1) Daftar Array
Terapkan antarmuka: IList, ICollection, IEnumerable
Selama koleksi tidak dimodifikasi, ArrayList dapat dengan aman mendukung banyak pembaca secara bersamaan
Saat elemen ditambahkan ke ArrayList, kapasitas secara otomatis ditingkatkan sesuai permintaan dengan mengalokasikan kembali (peningkatan 2x lipat)
Jika Anda perlu membuat array objek, tetapi Anda tidak mengetahui ukuran array sebelumnya, Anda dapat menggunakan ArrayList
ArrayList mengacu pada semua elemen sebagai objek, sehingga perlu diketik saat mengakses elemen di ArrayList
Kelebihan: Mengubah ukuran secara dinamis, penyisipan dan penghapusan elemen yang fleksibel dan nyaman, penyortiran
Kekurangan: Kinerja penyisipan tidak sebaik array, bukan jenis yang kuat

2) BitArray
Terapkan antarmuka: ICollection dan IEnumerable
Kelola array terkompresi dari nilai bit.

3) Hashtable
Terapkan antarmuka: IDictionary, ICollection, IEnumerable
Anda dapat dengan bebas menambahkan dan menghapus elemen ke Hashtable, beberapa seperti ArrayList, tetapi tanpa overhead kinerja

4) Daftar yang Diurutkan
Terapkan antarmuka: IDictionary, ICollection, IEnumerable
SortedLIst menggabungkan keunggulan ArrayList dan Hashtable, dan dapat diurutkan berdasarkan nilai kunci

5) Antrean
Terapkan antarmuka: ICollection dan IEnumerable
Queque adalah antrean, akses masuk pertama, keluar pertama ke elemen individual
Anda dapat memanggil metode GetEnumerator() dari objek Queque untuk mendapatkan objek IEnumerator untuk meneleterasi elemen dalam antrean

6) Tumpukan
Terapkan antarmuka: ICollection dan IEnumerable
Tumpukan adalah tumpukan yang mengakses elemen individual secara last-in, first-out
Anda dapat memanggil metode GetEnumerator() dari objek Stack untuk mendapatkan objek IEnumerator untuk mengulangi elemen dalam tumpukan

3. Kelas koleksi yang disebutkan di atas semuanya adalah kelas koleksi umum, dan sebagian besar elemen yang mereka terima adalah jenis Objek, ketika objek dimasukkan
Setelah pengumpulan, informasi jenis asli hilang - yaitu, kelas koleksi umum ini tidak diketik dengan kuat
Solusinya adalah menggunakan kelas koleksi yang diketik dengan kuat
Namespace System.Collections
System.Collections.Specialized namespace Beberapa kelas dapat memenuhi persyaratan dan dapat digunakan secara langsung atau diwariskan





Mantan:Surat terbuka untuk mayoritas penis menjelang Hari Lajang
Depan:C# Generic Range Rover (Turn)
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com