目前,我正在返回所有具有日期范围的项目列表。一些约会已过期,而其他约会尚未发生。我正在显示尚未过期的约会。但我想检查是否所有的使用权都已过期,然后显示第一项。
var curApt = myAppts.Where(d => d.Appt.EndTime > DateTime.UtcNow).First();
如果
myAppts.Where(d => d.Appt.EndTime > DateTime.UtcNow) == null
var curApt = myAppts.First();
我该如何构造这两种情况?
最佳答案
FirstOrDefault
和null 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/