Avatar ·

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é.