不区分大小写包含动态Linq

Rol*_*ain 7 linq linq-to-objects contains

Contains在Linq-to-objects上使用Dynamic Linq时,搜索区分大小写.我希望能够搜索不区分大小写(如Linq-to-sql,因为SQL Server默认执行此操作).

就像是:

this.someQuery = this.someQuery.Where(field + ".Contains(@0, true)", strValue);
Run Code Online (Sandbox Code Playgroud)

where true表示:caseinsensitive = true,就像System.String.Contains提供的扩展之一.虽然我System.String默认情况下不能使用动态Linq 扩展.

Joh*_*hnD 15

你可以.比较低(两个)吗?像这样的东西:

this.someQuery = this.someQuery.Where(field.ToLower().Contains(strValue.ToLower()));
Run Code Online (Sandbox Code Playgroud)

还是我误解了你在找什么?

  • 我会被诅咒的...我尝试了这个并且它起作用了,昨天显然不起作用: this.someQuery = this.someQuery.Where(field + "ToLower().Contains(@0, true)", strValue 。降低()); (2认同)
  • 同样,`this.someQuery = this.someQuery.Where(String.Format(“ {0} .ToLower()。Contains(\” {1} \“)”,field,value.ToLower()))将起作用。 (2认同)