Итак, я знаю, что Find ()
- это только List
метод, тогда как First ()
является расширением для любого IEnumerable
. Я также знаю, что First ()
вернет первый элемент, если параметр не передан, тогда как Find ()
вызовет исключение. Наконец, Я знаю, что First ()
вызовет исключение, если элемент не найден, тогда как Find ()
вернет значение типа по умолчанию.
Я надеюсь, что это устранит путаницу по поводу что я на самом деле спрашиваю. Это вопрос информатики, и он касается этих методов на вычислительном уровне. Я понял, что расширения IEnumerable
не всегда работают так, как можно было бы ожидать изнутри. Итак, вот Q, и я имею в виду с точки зрения "близкой к металлической": в чем разница между Find ()
и First ()
?
Вот код для предоставить основные предположения для работы по этому вопросу.
var l = new List<int> { 1, 2, 3, 4, 5 };
var x = l.First(i => i == 3);
var y = l.Find(i => i == 3);
Есть ли реальная разница в вычислениях между тем, как First ()
и Find ()
обнаруживают свои значения в приведенном выше коде?
Примечание: давайте проигнорируем такие вещи, как ] AsParallel ()
и AsQueryable ()
на данный момент.