LINQ Unique() Exception pour 0 ou plusieurs éléments

J'ai quelques IEnumberable collection d'éléments. J'utilise .Single() de trouver un objet dans la collection.

Je choisis d'utiliser Single() car il ne devrait jamais être un élément spécifique. Toutefois, si l'un n'existe pas, alors j'ai besoin de le créer et de l'ajouter à la collection.

Mon problème est que Single() lance le même message d'erreur si il n'y a pas d'élément correspondant à l'prédicat ou si il y a plusieurs éléments. Mon idée était de mettre le Single() appeler à l'intérieur de l'essayer et attraper l'exception, ajouter l'élément, puis de continuer. Cependant, puisque les deux scénarios de jeter le InvalidOperationException, comment puis-je savoir si sa en raison de l'absence d'éléments ou de plusieurs articles?

Je sais que je peux utiliser First() mais cela ne veut pas imposer l'idée qu'il devrait y avoir une seule (sans faire de travail supplémentaire).

J'ai pu également utiliser Count() avant la Single() appel, mais qui semble juste pour saper le point de Single()

InformationsquelleAutor Justin Self | 2012-11-21