2012-07-27 81 views
3

我正在使用Microsoft Visual Studio 2005和.NET 2.0。我有一個用於選擇產品的組合框。選擇產品後,我在文本文件中搜索它 - 最後,我想在文件中找到該產品的行。但是下面的代碼無效的表達式'>'

int lineNo = lineList.IndexOf(lineList.Find(x => x.StartsWith(select))); 

編譯器給出了錯誤:

Invalid expression term '>' 

這與.NET的框架2.0版中的問題?

回答

14

我使用Microsoft Visual Studio 2005 2.0 Net。

這意味着你正在使用C#2

但你試圖用一個lambda表達式(=>) - 在C#3中引入的功能這不是框架的版本您正在使用 - 您可以在VS2008或更高版本中編寫相同的代碼,仍然以.NET 2爲目標。這是您正在使用的語言的版本。

你可以在C#2雖然匿名方法類似:

int lineNo = lineList.IndexOf(lineList.Find(delegate(String x) 
{ 
    return x.StartsWith(select); 
})); 
+0

是的。所以我必須尋找其他方式? – Andreas01 2012-07-27 08:30:07

+0

所以這就是你對半信譽用戶的期望:不僅僅是解釋爲什麼不起作用 - 而且還是一個適當的解決方法。 :-) – 2012-07-27 08:30:21

+0

是的,謝謝你。 – Andreas01 2012-07-27 08:32:49

4

Lambda表達式開始的C#語言3.0版本支持。 framework 2.0 + Vs 2005對使用​​c# 2.0