簡體   English   中英

Linq Query Where()SQL%等效

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM