2012-07-27 52 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