Pourquoi est-ce code de jeter une exception InvalidOperationException?

Je pense que mon code doit faire l' ViewBag.test bien égal à "No Match", mais au lieu de cela, il jette un InvalidOperationException.

Pourquoi est-ce?

string str = "Hello1,Hello,Hello2";
string another = "Hello5";
string retVal = str.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
                   .First(p => p.Equals(another));
if (str == another)
{
   ViewBag.test = "Match";
}
else
{
   ViewBag.test = "No Match"; //this does not happen when it should
}
Le code renvoie au Système.InvalidOperationException au lieu d'afficher "Aucun Match" sur la page.
Il n'a pas d' retour InvalidOperationException, il le jette. Principalement parce que il n'y a pas de chaîne dans la liste qui est égal à "Hello5". De quoi êtes-vous tring à accomplir?
.(Première) se jette sur elle, si il n'y a pas un match, essayez FirstOrDefault() et vérifier la valeur null

OriginalL'auteur user2398766 | 2013-05-19