私はいくつかのIEnumberable
コレクションを持っています。私は.Single()
を使ってコレクション内の特定のオブジェクトを見つけます。LINQ Single()0または複数のアイテムの例外
Single()
を使用することを選択したのは、特定のアイテムが1つだけであるためです。しかし、存在しない場合は、作成してコレクションに追加する必要があります。
私の問題は、述語に一致する項目がない場合、または複数の項目がある場合、Single()
は同じエラーをスローします。私の考えは、試しにSingle()
コールを入れて例外をキャッチし、そのアイテムを追加してから、続けます。しかし、両方のシナリオでInvalidOperationException
が投げられるので、アイテムがないか複数のアイテムが原因であるかどうかをどのように判断できますか?
私はFirst()
を使うことができると知っていますが、余分な作業をすることなく、1つしかなければならないという考えを強制しません。
私もSingle()
呼び出しの前Count()
を使用することができますが、それはちょうどあなたが欲しいSingle()
まあ、要素型のデフォルト値を返します。参照型ではnullですが、null値ではない値の型ではないことは明らかです... –
...ヌルチェックをチェーンしたい場合は、このようなものを使用してください。http://napoleonss.wordpress.com/2011/12/ 20/my-check-null /。 デフォルトで動作します。 – napoleonss
@JonSkeet正しいです。私は彼が参照型について話していると思った。 –