猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
Linq Where()lambda表达式中的“或”等价物
Linq中是否有一种方法可用于构建“ ... where(a = 1)OR(a = 2)”之类的SQL字符串?
狐的传说
浏览 1257
回答 3
3回答
杨魅力
您当然可以在Where子句(扩展方法)中执行此操作。但是,如果需要动态构建复杂的查询,则可以使用PredicateBuilder。 var query = collection.Where( c => c.A == 1 || c.B == 2 );或使用PredicateBuilder var predicate = PredicateBuilder.False<Foo>(); predicate = predicate.Or( f => f.A == 1 ); if (allowB) { predicate = predicate.Or( f => f.B == 1 ); } var query = collection.Where( predicate );
0
0
0
森林海
现在,它已内置到.net中,不确定以前是否已建立。给定一个现有的Linq查询,您可以添加一个带字符串数组(SearchStrings)的where子句,并检查它们是否与您要搜索的集合中的任何对象匹配。使用ToLower()只是确保您避免在SQL查询中区分大小写。query.Where(i => SearchStrings.Any(s => i.ToLower().Contains(s.ToLower()));通过将数组中的所有单词与集合的对象匹配,可以对“和”谓词执行相同的操作。query.Where(i => SearchStrings.All(s => i.ToLower().Contains(s.ToLower()));在此示例中,我与集合中的每个对象相关,而s与SearchStrings数组中的每个字符串相关。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
.NET
.net 中 字符串含有超链接,如何给超链接自动加上a标签?
1 回答
请问.net 中用jquery传值安全吗?
2 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续