我有一个 mvc 项目,我在其中使用了 linq。 在我的数据库中有一些记录,例如“Something”,“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();
更好的解决方案(基于这篇文章:Case insensitive 'Contains(string)')
var lists = rec.Where(p =>
CultureInfo.CurrentCulture.CompareInfo.IndexOf
(p.Name, records.Name, CompareOptions.IgnoreCase) >= 0).ToList();
关于c# - Linq 中不区分大小写的 "contains",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27107132/