2010-10-01 51 views
1

我知道如何使用.Contains查找'%testwords%',我的問題是關於如何使用linq來獲取'%test%words% 」。由於如何獲得類似sql'%test%words%'的內容LINQ

+0

澄清:你是否試圖找到具有「測試」的記錄加上具有「單詞」或包含性的記錄,因爲所有記錄必須具有「測試「和」文字「? – NotMe 2010-10-01 15:31:29

+0

@Chris,我想像sql語句那樣的確切功能」like'%test%word%'「,而且我們不允許使用linq to sql – Zalan 2010-10-01 15:42:24

+0

我看到並修復了標籤。 – 2010-10-01 15:43:38

回答

2

也許是這樣的,如果你不使用LINQ to SQL:

var query = from o in yourObject 
      where o.field.Contains("test") 
      where o.field.Contains("words") 
      where o.field.indexOf("test") < o.field.indexOf("words") 
      select o; 

如果你使用LINQ to SQL,使用Stefanvds顯示SqlMethods。

+0

這就是答案 – Zalan 2010-10-01 16:52:57

1
.Where(q => SqlMethods.Like(q,"%test%words%")) 

使用SqlMethods

+0

中間的百分比如何? – DOK 2010-10-01 15:33:34

+0

謝謝,Stefanvds。我們不允許使用linq來sql – Zalan 2010-10-01 15:40:01

+0

這並不意味着它是不正確的答案。您可以將Linq To Sql語法更改爲LINQ。這並不困難。 「你的代碼是正確的Stefandvds」 – AEMLoviji 2010-10-02 05:14:24

0

很好,我想答案是NO :(

可能是最接近的答案是lst.Where(foo.Contains( 「測試」)& & foo.Contains( 「字」)),雖然該聲明沒有給出正確的序列作爲'%test%word%'