从LINQ查询中抓取顶部条目

soo*_*ise 3 c# linq foreach

我基本上有很多设计糟糕的代码来做一些事情,我敢肯定,可以做得更优雅.

我要做的是从数据库表中获取最后一个日期.

var Result = 
from a in DB.Table
orderby a.Date descending
select new {Date = a};

foreach(var Row in Result)
{
LastDate = Row.Date.Date;
break;
}
Run Code Online (Sandbox Code Playgroud)

基本上,有一个foreach循环只能运行一次.蹩脚的代码!什么是实现同样事情的"最佳实践"方式?

Cyl*_*Cat 13

var first = Result.First();
Run Code Online (Sandbox Code Playgroud)

如果结果集为空,则会抛出异常; 你可以使用FirstOrDefault(),如果结果集为空,它将返回null.


SLa*_*aks 8

打电话First().
例如:

LastDate = 
    (from a in DB.Table
     orderby a.Date descending
     select a.Date
    ).First();
Run Code Online (Sandbox Code Playgroud)

如果表可能为空,则调用FirstOrDefault(),它将返回DateTime.MinValue而不是抛出异常.