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

发布于 2024-10-19 20:59:41 字数 387 浏览 1 评论 0原文

如果具有指定键的元素不在集合中,我希望以下函数返回 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

建议?

I would like the following function to return Nothing if the element with the specified key is not in the collection. Instead, it returns an error - something to the effect of "no element found"

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

Suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野心澎湃 2024-10-26 20:59:41

First() 替换为 FirstOrDefault(),如

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

First() 假设至少有一个元素,如果不能,则抛出异常找到任何。默认情况下,FirstOrDefault() 返回 Nothing

Replace First() with FirstOrDefault() as in

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

First() assumes there is at least one element and throws an exception if it can't find any. FirstOrDefault() returns Nothing by default.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文