我们可以在LINQ表达式中使用方法.Contains(string)
,听起来像搜索文本%',方法.StartsWith(string)
,听起来像是搜索文本%'和方法.EndsWith(string)
,听起来像搜索文字'%。
但是我需要一些听起来像搜索%text%'的内容,它会找到包含' search'和'文字',但不是连续的。
示例:我有这些记录:
搜索我的文字
搜索文字
寻求文字
在SQL中,LIKE '%search%text%'
的查询带来:
搜索我的文字
搜索以获取文字
但不会带来'seek the text'
。
有什么想法吗?
答案 0 :(得分:7)
您可以使用其中一种辅助方法:
var result = from o in ctx.table
where SqlMethods.Like(o.column, "%search%text%")
select o.column;
答案 1 :(得分:0)
你可以使用这样的东西:
var rx = new Regex("search.*text", RegexOptions.IgnoreCase);
List<string> lists=new List<string>(){"search text","search this text","search my book"};
var result = lists.Where(x => rx.IsMatch(x));
如果您以“search%text”的形式获得输入,那么您可以将“%”字符串替换为“。*”,并使用Reg ex pattern。