如果陈述相互矛盾-如何纠正
本文关键字:何纠正 相互矛盾 陈述 如果 | 更新日期: 2023-09-27 18:05:26
我有两个if
语句,它们都是相互冲突的。
默认情况下,我可以从if
语句中通过Dates
和Drop Down
列表进行过滤:
DateTime fromDate = DateTime.MinValue;
DateTime toDate = DateTime.MaxValue;
if (dateFilter.Contains('~'))
{
fromDate = dateFilter.Split('~')[0] == "" ? DateTime.MinValue : Convert.ToDateTime(dateFilter.Split('~')[0]);
toDate = dateFilter.Split('~')[1] == "" ? DateTime.MaxValue : Convert.ToDateTime(dateFilter.Split('~')[1]);
}
filteredTracks = DataRepository.GetTracks()
.Where(c => (trackFilter == "" || c.TrackName.ToLower().Contains(trackFilter.ToLower()))
&&
(fromDate == DateTime.MinValue || fromDate < c.Date)
&&
(toDate == DateTime.MaxValue || c.Date < toDate)
);
,但不能使用这个if
语句进行正常的过滤记录,如果上面的语句正在使用:
if (!string.IsNullOrEmpty(param.sSearch))
{
var isTrackSearchable = Convert.ToBoolean(Request["bSearchable_1"]);
filteredTracks = DataRepository.GetTracks()
.Where(c => isTrackSearchable && c.TrackName.ToLower().Contains(param.sSearch.ToLower()));
}
else
{
filteredTracks = allTracks;
}
有可能让这两个工作吗?
任何帮助将是一个伟大的帮助:)
在这种情况下,您可以重用相同的查询,有条件地添加Where
子句。例如,对于第二个if语句,你可以这样做:
filteredTracks = filteredTracks.Where(...
其中filteredTracks
已经包含了第一个if语句的结果