日期:2014-05-20  浏览次数:20931 次

高难度linq 多条件查询
C# code

 public void QueryVisitorInfo(string visitorName,string visitorCorp,string revEmpName, 
            string fromVisitTime, string toVisitTime)



需求:
如果visitorName不为空,则返回结果集合中每个元素的VisitorName字段都要包含有visitorName字样
如果revEmpName不为空,则返回结果集合中每个元素的RevEmpName字段都要包含有revEmpName字样
如果fromVisitTime不为空,则返回结果集合中每个元素的FromVisitTime字段都要 大于 Convert.ToDateTime(fromVisitTime)
如果toVisitTime不为空,则返回结果集合中每个元素的ToVisitTime字段都要 小于 Convert.ToDateTime(toVisitTime)

var query =data.where(d={//如何写?})
貌似直接在where里面写{}是出错的 ,只能写()

怎么做


------解决方案--------------------
参考:

http://blog.csdn.net/q107770540/article/details/5724013
------解决方案--------------------
var query =data.where where (string.IsNullOrEmpty(visitorName) ? true : 需要的值) &&
(string.IsNullOrEmpty(revEmpName) ? true : 需要的值)