如何获取通用列表中的最后一个对象?

发布于 2024-08-06 05:32:47 字数 450 浏览 1 评论 0原文

我将填充的 SelectList 传递到我的视图,并且希望将所选值默认为列表中的最后记录。到目前为止,我得到了:

IQueryable<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos();
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID);

我收到一个异常,说“不支持查询运算符‘Last’,但我似乎无法获取通用列表中的最后一条记录,也找不到任何示例。

此代码来自一个“表单视图模型”将选择列表从我的存储库传递回视图,我认为我应该在这里执行此操作,但是我对 generics/mvc/linq 很陌生,因此很高兴获得其他建议

。如果您需要更多信息,请告诉我。

I am passing a populated SelectList to my View and I want to default the selected value to the last record in the list. So far I've got:

IQueryable<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos();
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID);

I get an exception saying "the query operator 'Last' is not supported but I can't seem to get at the last record in my generic list and can't find any examples.

This code is from a 'form view model' passing select lists from my repository back to the view and I think I should be performing this here. However I'm new to generics/mvc/linq so am happy for alternative suggestions.

Thanks in advance for any help. Please let me know if you want any more info.

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

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

发布评论

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

评论(3

故人如初 2024-08-13 05:32:47

您是否已经将查询的所有结果吸入内存?如果是这样,我建议您执行查询并将结果放入列表中:

List<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos().ToList();
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID);

否则您很容易得到执行查询两次的解决方法 - 可能会给出不一致的结果。

Are you already going to suck all the results from your query into memory? If so, I suggest you execute your query and get the result into a list:

List<BuildNumber> projBuildNos = tcRepository.GetProjectBuildNos().ToList();
BuildList = new SelectList(projBuildNos, "ID", "value", projBuildNos.Last().ID);

Otherwise you could easily end up with a workaround which executes the query twice - possibly giving inconsistent results.

和我恋爱吧 2024-08-13 05:32:47

我在 MSDN 上找到了这个:

Queryable.LastOrDefault -- 返回最后一个序列中的元素,如果序列不包含元素,则为默认值。

I found this on MSDN:

Queryable.LastOrDefault -- Returns the last element in a sequence, or a default value if the sequence contains no elements.

空心空情空意 2024-08-13 05:32:47

也许是这个?

projBuildNos.Reverse().First().ID

Maybe this?

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