使用 LINQ 返回单个结果
我有一个查询
row.GetChildRows("EventCategoryRelation")
.Where(categoryRow => categoryRow["event_id"].ToString() == eventObject.EventId.ToString())
.Select(x => Int32.Parse(x["category_id"].ToString()))
该查询返回一个 IEnumerable。我期待一个 'int'
帮助我修改我的 LINQ 查询
I have a query
row.GetChildRows("EventCategoryRelation")
.Where(categoryRow => categoryRow["event_id"].ToString() == eventObject.EventId.ToString())
.Select(x => Int32.Parse(x["category_id"].ToString()))
This query returns an IEnumerable. I am expecting an 'int'
Help me modify my LINQ query
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您希望查询仅返回单个值,请使用 单一扩展方法。
请注意,如果存在 Single 将引发异常是没有价值的。如果这不是您想要的,请使用 SingleOrDefault。
If you expect your query only to return a single value use the Single extension method.
Note that Single will throw an exception if there is no value. If that is not what you want, use SingleOrDefault.
您始终可以将其添加到查询的末尾:
如果您的可枚举仅包含一个值,则将返回一个值,或者如果它包含一个以外的其他数量,则抛出异常。
You can always add this to the end of your query:
That will return the one value if your enumerable contains only one, or throw an exception if it contains another amount than one.
在查询中添加
First()
子句:如果没有结果,您可能需要使用
FirstOfDefault()
,如First()
在这种情况下会抛出异常。Add a
First()
clause to the query:You may want to use
FirstOfDefault()
in case there are no results, asFirst()
will throw an exception in such a case.只是
SingleOrDefault()
而不是Select()
,请记住,如果有多个结果,您将收到异常,您也可以使用FirstOrDefault()< /code>,所以它看起来像:
just
SingleOrDefault()
instead ofSelect()
, keep in mind if there more than one result you will get an exception, you can also useFirstOrDefault()
,so it will look like:根据您的数据添加
.FirstOrDefault
、.SingleOrDefault()
、.First()
等。当您需要多行时,请使用 First (< code>FirstOrDefault(如果您不希望在没有返回数据的情况下出现异常)。多行将在
Single
或SingleOrDefault
上引发异常。Depending on your data add
.FirstOrDefault
,.SingleOrDefault()
,.First()
etc.When you expect multiple rows, use First (
FirstOrDefault
if you dont want an exception if there is no data returned). Multiple rows will throw an exception onSingle
orSingleOrDefault
.