Pur*_*ome 1 .net linq linq-to-objects
我正在尝试使用linq过滤对象列表.当我过滤Contains(someSearchQuery)它时,它就像是区分大小写的......这意味着我会错过一些结果.
我有一个IList<Foo>有很多属性的,但有一个属性public string MyText { get; set; }
现在,我正在尝试返回一个IQueryable of Foo,其中MyText属性包含search query- 但是如果这是一个Sql语句,它将是...
WHERE MyText LIKE '%searchQuery%' < - 工作但不尽如人意
要么
WHERE CONTAINS(MyText, 'searchQuery') < - 使用FTS.
我不知道该怎么做,因为当我做以下查询时,它就像是在做一个区分大小写的
var query = from q in myFooList.AsQueryable().Where(x => x.MyText.Contains(searchQuery));
建议?
你问的是string.Contains方法,而不是LINQ.
String.Contains不支持不区分大小写的搜索.相反,你应该这样打电话IndexOf:
var query = from q in myFooList
.Where(x => x.MyText.IndexOf(searchQuery, StringComparison.OrdinalIgnoreCase) >= 0);
Run Code Online (Sandbox Code Playgroud)
请注意,由于您使用的是LINQ-to-Objects,因此您(大概)不需要AsQueryable.
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |