我有以下列表项目才能显示.我可以看到下面的小列表,可能是数百行.StartDate也EndDate可以nullable,如果EndDate为null,则表示课程仍然开放.
CourseId ClassName StartDate EndDate isActiveinDB
-------- --------- --------- ------- ------------
12321 Math 08-25-2017 12-02-2017 Y
32342 Math 08-25-2017 12-02-2017 N
25325 Math 01-25-2018 - Y
Run Code Online (Sandbox Code Playgroud)
如果我通过以下方法通过今天的日期(06-06-2018),它将返回所有课程,而不仅仅是最后一个课程(数学25325),该课程尚未过期且基于开放isActiveinDB.
我想知道以下实现的不正确之处.
public List<Courses> GetClassesByDate( DateTime date, List<Courses> allCourses)
{
List<Courses> courses = allCourses.Where( x => x.StartDate.HasValue ? x.StartDate <= date : true
&& x.EndDate.HasValue ? x.EndDate.Value >= date : true
&& x.isActiveinDB.Equals("Y")).ToList();
return courses;
}
Run Code Online (Sandbox Code Playgroud)
感谢@DavidG,实现在以下链接中
尝试(如果可以StartDate为空,如你所说):
List<Courses> courses = allCourses.Where( x =>
(x.StartDate.HasValue ? x.StartDate.Value <= date : true)
&& (x.EndDate.HasValue ? x.EndDate.Value >= date : true)
&& x.isActiveinDB.Equals("Y")).ToList();
Run Code Online (Sandbox Code Playgroud)
你看到()我添加了吗?事实上,你在做什么
x.EndDate.HasValue ? x.EndDate.Value : (true && isActiveinDB.Equals("Y"))
Run Code Online (Sandbox Code Playgroud)
你看?该true不是一个单一的值,而是一个子表达式true && isActiveinDB.Equals("Y")
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |