Волнует вопрос оптимальности работы с LINQ. Один знакомый уверял меня, что когда я вызываю .ElementAt(N), то за сценой происходит нечто подобное:
public static T ElementAt
Как мы понимаем, эту куда медленнее, чем просто получить элемент по индексу в том же массиве, листе и прочем. Если это действительно так, и
a[999]; // int[] a = new int[1000];
отработает в ~1000 раз быстрее, чем
a.ElementAt(999);
то возможно ли создать метод-расширение для всех классов, у которых гарантировано есть индексатор?
Ответ
Это не совсем так. Почти все методы LINQ сначала делают проверку на список. Но если ты и так знаешь, что там список, то используй скобки, а не LINQ. Они же даже короче.
public static TSource ElementAt
Комментариев нет:
Отправить комментарий