目前,我正在返回所有具有日期范围的项目列表。一些约会已过期,而其他约会尚未发生。我正在显示尚未过期的约会。但我想检查是否所有的使用权都已过期,然后显示第一项。

var curApt = myAppts.Where(d => d.Appt.EndTime > DateTime.UtcNow).First();


如果myAppts.Where(d => d.Appt.EndTime > DateTime.UtcNow) == null

var curApt = myAppts.First();


我该如何构造这两种情况?

最佳答案

FirstOrDefaultnull coalescing operator (??)

var curApt = myAppts.FirstOrDefault(d => d.Appt.EndTime > DateTime.UtcNow)
             ?? myAppts.First();


但是,如果您有一个默认值来显示是否根本没有约会,则可以使这种异常更少发生,您可以为此链接null合并运算符:

var curApt = myAppts.FirstOrDefault(d => d.Appt.EndTime > DateTime.UtcNow)
             ?? myAppts.FirstOrDefault() ?? yourDefault;

关于c# - 检查返回的空项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18112882/

10-09 16:04