当前位置: 首页 > 编程语言 > C#

Linq可选参数分享

时间:2023-04-10 21:03:56 C#

Linq可选参数我有一个linq查询。我从正在收集的表单中获取了一堆参数,我需要根据用户正在搜索的字段进行过滤。IQueyableuser=fromuserinedmxObject.Userswhereuser.FirstName.Contains(model.FirstName??user.FirstName)&&user.UserName.Contains(model.UserName??user.UserName)我还需要一些非字符串字段过滤器,包括长整数和布尔值。如果用户没有选择任何东西,它们可能是空的。如何将它们包含在查询中。这是LINQ多么强大的最好例子之一-延迟执行。您可以在不同阶段构建查询,并且只有在最终执行或解析查询时才会生成SQL语句:varquery=edmxObject.Users.AsQueryable();如果(!String.IsNullOrEmpty(model.FirstName)){query=fromuserinquerywhereuser.FirstName.Contains(model.FirstName)selectuser;}if(!String.IsNullOrEmpty(model.UserName){query=fromuserinquerywhereuser.UserName.Contains(model.UserName)selectuser;}//这将导致查询执行获取物化结果varresult=query.ToList();如果查询不包含特定字段,则根本不需要将其作为where子句的一部分包含在内:IQueyableuser=fromuserinedmxObject.Users;if(model.FirstName!=null)users=users.Where(user=>user.FirstName.Contains(model.FirstName)if(/*搜索年龄*/)users=users.Where(user=>user.Age==model.Age);你可以通过这种方式有条件地嵌套谓词,以确保你只有你真正需要的条件。以上内容全部来自C#学习教程:Linq可选参数如果内容对你有用,你需要进一步了解C#学习教程,我希望大家多多关注,本文采集自网络,不代表立场,如涉及侵权,请点击右下角联系管理员删除。如有转载请注明出处: