我有一个 mvc 项目,我在其中使用 linq。
在我的数据库中有一些记录,例如“Someth ing”,“SOmeTH ing”,“someTh ing”,“SOMETH ING”,“someTH ING”
我想做这个:
SELECT * FROM dbo.doc_dt_records WHERE name LIKE '%' + @records.Name + '%'
但是,如果我运行此代码,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
}
感谢您的帮助...
最简单的方法是使用 ToLower() 方法
var lists = rec.Where(p => p.Name.ToLower().Contains(records.Name.ToLower())).ToList();
更好的解决方案(基于这篇文章:不区分大小写“包含(字符串)” https://stackoverflow.com/questions/444798/case-insensitive-containsstring)
var lists = rec.Where(p =>
CultureInfo.CurrentCulture.CompareInfo.IndexOf
(p.Name, records.Name, CompareOptions.IgnoreCase) >= 0).ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)