我有一个mvc项目,我在其中使用linq.在我的数据库中有一些记录,例如"Someth ing","SOmeTH ing","someTh ing","SOMETH ING","someTH ING"
我想做这个:
SELECT * FROM dbo.doc_dt_records WHERE name LIKE '%' + @records.Name + '%'
Run Code Online (Sandbox Code Playgroud)
但是,如果我运行此代码,list.Count将返回0.我该怎么办?
records.Name = "someth ing"; //for example
var rec = db.Records.ToList();
var lists = rec.Where(p => p.Name.Contains(records.Name)).ToList();
if (lists.Count > 0)
{
// do sthng
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助......
简单的方法是使用ToLower()方法
var lists = rec.Where(p => p.Name.ToLower().Contains(records.Name.ToLower())).ToList();
Run Code Online (Sandbox Code Playgroud)
一个更好的解决方案(基于这篇文章:不区分大小写'包含(字符串)')
var lists = rec.Where(p =>
CultureInfo.CurrentCulture.CompareInfo.IndexOf
(p.Name, records.Name, CompareOptions.IgnoreCase) >= 0).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24547 次 |
| 最近记录: |