2010-09-14 66 views
1

我想在這裏使用。載:LINQ包含語法問題

listIsSame = personalization.Options.Contains(item.Value, StringComparison.OrdinalIgnoreCase); 

錯誤:錯誤3「串」不包含定義「包含」和最佳推廣方法重載「 System.Linq.Queryable.Contains(System.Linq.IQueryable,TSource,System.Collections.Generic.IEqualityComparer)'有一些無效參數C:\ www \ bug4443 \ Controls \ ItemsContent.ascx.cs

顯然我不不明白句法如何在這裏。我嘗試了幾件事情,但沒有運氣。我看到一個包含一個通用的方法,這樣......

回答

5

String.Contains Method有這樣的簽名:

public bool Contains(string value) 

沒有超載,需要一個StringComparison參數。

C#編譯器發現的帶有兩個參數的唯一Contains方法是Queryable.Contains。但是對於這種方法,參數的類型不匹配。因此錯誤信息。

可以使用String.IndexOf Method (String, StringComparison)代替:

listIsSame = personalization.Options.IndexOf(item.Value, StringComparison.OrdinalIgnoreCase) >= 0; 

我不知道這是由LINQ到SQL雖然承認,如果你碰巧處理的LINQ到SQL可查詢。

0

什麼是定義或您的個性化選項對象?

Linq的contains確實包含您正在使用的簽名,但該錯誤消息指示您調用的包含的對象不是IQueryable