Avatar ·

Cuándo usar .First() y cuándo .FirstOrDefault() en LINQ en C#?

¡Hola a todos! Recientemente comencé a estudiar C# y LINQ, y me encontré con una situación confusa. Hay dos métodos similares: `.First()` y `.FirstOrDefault()`. Entiendo que ambos devuelven el primer elemento de una secuencia, pero ¿cuál es la diferencia entre ellos? Supongamos que tengo una lista de usuarios: ```csharp List users = new List { "Alice", "Bob", "Charlie" }; ``` Si escribo: ```csharp string firstUser = users.First(u => u.StartsWith("Z")); ``` entonces obtengo una excepción `InvalidOperationException`. Pero si uso `.FirstOrDefault()`: ```csharp string firstUser = users.FirstOrDefault(u => u.StartsWith("Z")); ``` entonces no hay excepción, y `firstUser` es `null`. Pero, ¿cuándo es correcto usar cada opción? He leído que `.First()` lanza una excepción si no se encuentra nada, mientras que `.FirstOrDefault()` devuelve el valor por defecto. Pero no me queda del todo claro en qué escenarios vale la pena arriesgarse a una excepción, y en cuáles es mejor devolver `null` o el valor por defecto.