Разница между list.First (), list.ElementAt (0) и list [0]?

Согласно заголовку ... Есть ли реальная разница между list.First (), list.ElementAt (0) и list [0]?

25
задан corlettk 29 May 2011 в 01:46
поделиться

2 ответа

Нет, разницы нет вообще. Все они делают одно и то же, возвращают первый элемент в списке.

РЕДАКТИРОВАТЬ: я думаю, я не должен сказать, что нет никакой разницы. ElementAt () и First () оба имеют некоторую обработку ошибок, которые они делают, проверяя нулевые значения и индексы вне диапазона, но на самом деле это не должно быть заметно.

1
ответ дан 28 November 2019 в 18:25
поделиться

Другим соображением при выборе между этими вариантами является то, что First() и ElementAt(0) оба совместимы с любой последовательностью - любой реализацией IEnumerable. (Это может быть полезно, поскольку это означает, что вы можете поменять переменную с другой реализацией IEnumerable без необходимости изменения какого-либо кода.) Напротив, индексатор работает только для списков и других структур, которые непосредственно реализуют эту функциональность.

И наоборот, использование индексатора может быть хорошим способом гарантировать (во время компиляции), что вы получаете оптимизированную производительность, поскольку ElementAt имеет разумную вероятность быть O (n) вместо O (1) в то время как индексаторы обычно считаются быстрыми.

6
ответ дан 28 November 2019 в 18:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: