[英]Linq Query Where() SQL % equivalent
我們可以在LINQ表達式中使用方法.Contains(string)
,聽起來像'%search text%',方法.StartsWith(string)
,聽起來像'search text%',方法.EndsWith(string)
,聽起來像'%search text'。
但是我需要一些聽起來像'%search%text%'的內容,它會找到包含'search'和'text'的所有內容,但不是順序的。
示例:我有這些記錄:
搜索我的文字
搜索文本
尋求文本
在SQL中, LIKE '%search%text%'
的查詢帶來:
搜索我的文字
搜索 文本
但不會帶來'seek the text'
。
有任何想法嗎?
您可以使用其中一個輔助方法:
var result = from o in ctx.table
where SqlMethods.Like(o.column, "%search%text%")
select o.column;
你可以使用這樣的東西:
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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.