C# 没有记录时的linq默认值

C# 没有记录时的linq默认值,c#,asp.net,.net,asp.net-mvc,linq,C#,Asp.net,.net,Asp.net Mvc,Linq,我正在进行拍卖,如果没有出价,我想将当前价格指定给起始价格。这是我的问题。我怎么能这么做 var model = db.Items .Where(i => i.EndDate > DateTime.Now) .Select(i => new ViewItemViewModel { ItemId = i.ItemId, Title = i.Tit

我正在进行拍卖,如果没有出价,我想将当前价格指定给起始价格。这是我的问题。我怎么能这么做

var model = db.Items
            .Where(i => i.EndDate > DateTime.Now)
            .Select(i => new ViewItemViewModel
            {
                ItemId = i.ItemId,
                Title = i.Title,
                EndDate = i.EndDate,
                Description = i.Description,
                CurrentPrice = i.Bids.OrderByDescending(b => b.Price).First().Price
            }).ToList();
这是重要的一部分

CurrentPrice = i.Bids.OrderByDescending(b => b.Price).First().Price

最简单的方法是只使用内联if(您可以在linq中这样做)


注意如果您要返回数据库(例如使用EF),您可能希望使用
FirstOrDefault()
,因为
First()
未在EF linq中实现
ViewItemViewModel具有CurrentPrice属性设计setter,因此如果其为null,则获取一些初始值
CurrentPrice = i.Bids.Any() ? i.Bids.OrderByDescending(b => b.Price).First().Price : 27