c# - 如果FirstOrDefault返回null,则返回列表中的第一项

标签 c# asp.net-mvc linq

我有一个List产品,我需要从列表中获取带有从querystring参数中获取的特定产品Id的商品。但是,我可能并不总是将产品Id传递给我。如果我没有产品Id,则需要默认使用列表中的第一个产品。

目前,我有:

@Model.Products.FirstOrDefault(x => x.Id == productId);


这只会选择具有该特定Id的产品,如果没有,则默认为null

有没有办法实现我想要的?

最佳答案

听起来像您想要的:

var product = productId == null ? Model.Products.FirstOrDefault()
                    : Model.Products.FirstOrDefault(x => x.Id == productId);
...
@product


或者你可能的意思是:

@(Model.Products.FirstOrDefault(x => x.Id == productId) ??
             Model.Products.FirstOrDefault())

关于c# - 如果FirstOrDefault返回null,则返回列表中的第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9429341/

相关文章:

asp.net-mvc - Controller MVC中的错误传播

c# - View 模型构造函数中的异常处理(重定向)

c# - 输入字符串的格式不正确 #2

C#:锚定面板无法正确调整大小

c# - 如何从一个纹理显示大量 Sprite 并使它们以间隔XNA 4.0移动

c# - 如何使用 LINQ 将基类对象的集合转换为它们各自子类的过滤列表?

c# - 如何有效地合并两个集合?

c# - 如何制作内部界面图案?

c# - 在 C# 中运行时将字符串转换为类

c# - 如何根据对象的字符串属性对齐对象列表?