2011-03-03 13 views
1

指定されたキーを持つ要素がコレクションにない場合、Nothingを返すようにします。代わりに、エラーが返されます。「要素が見つかりません」という効果があります。LINQを使用してコレクション内の要素を返す場合、要素が見つからない場合はNothingを返します。

Public Class MyCollection 

    Inherits System.Collections.ObjectModel.Collection(Of MyType) 

    Public Function FindByActivityKey(ByVal searchValue As Integer) As MyType 
     Return (From P In Me Order By P.ActivityPin.PrimaryKey = searchValue).First 
    End Function 

End Class 

提案はありますか?

答えて

8

Return (From P In Me Order By P.ActivityPin.PrimaryKey = searchValue) _ 
     .FirstOrDefault() 

First()のようFirstOrDefault()First()を交換は、少なくとも一つの要素があると想定し、それがいずれかを見つけることができない場合に例外をスロー。 FirstOrDefault()はデフォルトでNothingを返します。

関連する問題