Skip to content

IEnumerable или List – что использовать? [C#]

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Завантаження...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


Використовуйте IEnumerable, якщо потрібні тільки базові функції над колекцією, наприклад, ітерація. Використовуйте IList, ICollection, якщо потрібні більш специфічні операції над колекцією.

Якщо ви хочете тільки перерахувати дані, використовуйте IEnumerable.

Однак слід пам’ятати, що зміна вихідної колекції, що перераховується, є небезпечною операцією – у цьому випадку спочатку потрібно виконати ToList(). Це створить новий елемент списку для кожного елемента в пам’яті, перелічуючи IEnumerable, і, таким чином, є менш продуктивним, якщо ви перелічуєте лише один раз – але безпечнішим, і іноді методи List зручніші (наприклад, у разі випадкового доступу).

Під час проектування методів у C# краще використовувати інтерфейси, а не конкретні реалізації, оскільки це дає найбільшу гнучкість. Наприклад, якщо наш метод приймає як параметр IEnumerable, то сторона, що викликає, може передати йому List, Array, Dictionary або будь-яку колекцію, яка реалізує IEnumerable:

Так само, IEnumerable концептуально швидший за List через відкладене виконання. Відкладене виконання робить IEnumerable швидшим, тому що він отримує дані тільки тоді, коли це необхідно. На відміну від списків, у яких дані постійно знаходяться в пам’яті.

Published inВідповіді на запитання C#
Subscribe
Notify of
guest
0 комментариев
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x