Jawabannya, seperti biasa, adalah " Itu tergantung ". Saya berasumsi dari tag yang Anda bicarakan tentang C #.
Taruhan terbaik Anda adalah menentukan
- Satu Set data
- Persyaratan penggunaan
dan menulis beberapa test case.
Ini juga tergantung pada bagaimana Anda mengurutkan daftar (jika itu diurutkan sama sekali), perbandingan apa yang perlu dibuat, berapa lama operasi "Bandingkan" untuk objek tertentu dalam daftar, atau bahkan bagaimana Anda bermaksud menggunakan koleksi.
Secara umum, yang terbaik untuk dipilih bukan berdasarkan ukuran data yang Anda gunakan, tetapi bagaimana Anda akan mengaksesnya. Apakah Anda memiliki setiap bagian data yang terkait dengan string tertentu, atau data lainnya? Koleksi berbasis hash mungkin akan menjadi yang terbaik. Apakah urutan data yang Anda simpan penting, atau Anda perlu mengakses semua data pada saat yang sama? Daftar reguler mungkin lebih baik.
Tambahan:
Tentu saja, komentar saya di atas menganggap 'kinerja' berarti akses data. Sesuatu yang perlu dipertimbangkan: apa yang Anda cari ketika Anda mengatakan "kinerja"? Apakah nilai kinerja individu terlihat? Apakah manajemen set nilai besar (10000, 100000 atau lebih)? Apakah kinerja mengisi struktur data dengan data? Menghapus data? Mengakses bit data individual? Mengganti nilai? Iterasi atas nilai-nilai? Penggunaan memori? Kecepatan penyalinan data? Misalnya, Jika Anda mengakses data dengan nilai string, tetapi persyaratan kinerja utama Anda adalah penggunaan memori yang minimal, Anda mungkin memiliki masalah desain yang saling bertentangan.