使用LINQ返回Collection中的元素,如果找不到元素,则返回Nothing

时间:2011-03-03 14:40:11

标签: vb.net 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

建议?

1 个答案:

答案 0 :(得分:8)

First()替换为{/ 1}},如

FirstOrDefault()

Return (From P In Me Order By P.ActivityPin.PrimaryKey = searchValue) _ .FirstOrDefault() 假设至少有一个元素,如果找不到任何元素则抛出异常。 First()默认返回FirstOrDefault()