Así que sé que Find()
es solo un método , mientras que First()
es una extensión para cualquier IEnumerable<T>
. También sé que First()
devolverá el primer elemento si no se pasa ningún parámetro, mientras que Find()
lanzará una excepción. Por último, sé que First()
lanzará una excepción si no se encuentra el elemento, mientras que Find()
devolverá el valor predeterminado del tipo.C# Diferencia entre First() y Find()
Espero que aclare la confusión sobre lo que realmente estoy preguntando. Esta es una pregunta de ciencias de la computación y trata con estos métodos a nivel computacional. He llegado a comprender que las extensiones IEnumerable<T>
no siempre funcionan como cabría esperar bajo el capó. Así que aquí está la Q, y me refiero desde un punto de vista "cercano al metal": ¿Cuál es la diferencia entre Find()
y First()
?
Aquí hay un código para proporcionar suposiciones básicas para operar bajo esta pregunta.
var l = new List<int> { 1, 2, 3, 4, 5 };
var x = l.First(i => i == 3);
var y = l.Find(i => i == 3);
¿Hay alguna diferencia real entre computacional cómo First()
Find()
y descubrir sus valores en el código anterior?
Nota: Vamos a ignorar cosas como AsParallel()
y AsQueryable()
por el momento.
Primero() creará un enumerador, Find() no lo hará. –