我在LINQ中使用lambda表达式,当必须满足条件时才会获得所有结果,如果不是,应该过滤。返回列表中的所有<T> lambda表达式
//代码
List<Dispatch> objDispatch = (List<Dispatch>)Session["Data"];
objDispatch = objDispatch.FindAll(dispatch => dispatch.CustomerTransName == ddlTransporterName.SelectedItem.Text && dispatch.InvoiceDate.Date >= Convert.ToDateTime(FromDate).Date && dispatch.InvoiceDate.Date <= Convert.ToDateTime(ToDate).Date);
在上面的代码即时过滤结果与在该第一条件我需要一个帮助在一些条件设定。
如果传输器名称是'ALL',它应该返回与Date条件匹配的所有结果集,否则它应该根据传输器名称返回。
我该如何做到这一点?
只是快速注意 - 你在这里并没有使用LINQ。 'List .FindAll'是.NET 2.0中'List '的一部分。 –
@JonSkeet:更新。 – iamCR
因此,如果我理解正确,如果下拉列表中选定的项目是“ALL”,那么您希望列表返回两个日期之间的日期的所有对象,否则它应该过滤名称以及日期?如果是这种情况,一个简单的'if'就足够了。 – Sean