Відповідь, як завжди, - це " Це залежить ". Я припускаю, що з тегів ви говорите про C #.
Ваша найкраща ставка - визначитись
- Набір даних
- Вимоги до використання
і написати кілька тестових випадків.
Це також залежить від того, як ви сортуєте список (якщо він взагалі відсортований), які порівняння потрібно проводити, скільки часу займає операція "Порівняти" для конкретного об'єкта у списку або навіть як ви плануєте використовувати колекція.
Як правило, найкращий вибір не стільки ґрунтується на розмірі даних, з якими ви працюєте, скільки на тому, як ви маєте намір отримати доступ до нього. Чи є у вас кожен фрагмент даних, пов'язаний з певним рядком чи іншими даними? Колекція на основі хешу, мабуть, найкраща. Чи важливий порядок даних, які ви зберігаєте, або вам буде потрібно мати доступ до всіх даних одночасно? Звичайний список може бути тоді кращим.
Додатково:
Звичайно, мої вище коментарі припускають, що «продуктивність» означає доступ до даних. Ще щось, що слід врахувати: що ви шукаєте, коли говорите "вистава"? Чи підвищується індивідуальна цінність ефективності? Це управління великими (10000, 100000 і більше) наборами значень? Це ефективність заповнення структури даних даними? Видалення даних? Доступ до окремих бітів даних? Заміна значень? Ітерація над значеннями? Використання пам'яті? Швидкість копіювання даних? Наприклад, якщо ви отримуєте доступ до даних за значенням рядка, але ваша основна вимога до продуктивності - мінімальне використання пам'яті, у вас можуть виникнути конфліктні проблеми з дизайном.