Quand utiliser .First() et quand utiliser .FirstOrDefault() en LINQ en C# ?
Bonjour à tous ! J'ai récemment commencé à apprendre C# et LINQ, et je suis tombé sur une situation que je ne comprends pas. Il y a deux méthodes similaires : `.First()` et `.FirstOrDefault()`. Je comprends que les deux retournent le premier élément d'une séquence, mais quelle est la différence entre elles ?
Supposons que j'ai une liste d'utilisateurs :
```csharp
List users = new List { "Alice", "Bob", "Charlie" };
```
Si j'écris :
```csharp
string firstUser = users.First(u => u.StartsWith("Z"));
```
alors je reçois une exception `InvalidOperationException`. Mais si j'utilise `.FirstOrDefault()` :
```csharp
string firstUser = users.FirstOrDefault(u => u.StartsWith("Z"));
```
alors il n'y a pas d'exception, et `firstUser` est égal à `null`.
Mais quand est-il correct d'utiliser chaque variante ? J'ai lu que `.First()` lève une exception si rien n'est trouvé.