无效的表达式术语“>”

Posted

技术标签:

【中文标题】无效的表达式术语“>”【英文标题】:Invalid expression term '>' 【发布时间】:2012-07-27 08:25:49 【问题描述】:

我正在使用带有 .NET 2.0 的 Microsoft Visual Studio 2005。我有一个用于选择产品的组合框。选择产品后,我在文本文件中搜索它——最后我想在文件中找到该产品的行。但是使用以下代码

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

编译器给出错误:

Invalid expression term '>' 

这是 .NET 2.0 框架版本的问题吗?

【问题讨论】:

【参考方案1】:

我使用 Microsoft Visual Studio 2005 和 2.0 Net。

这意味着您使用的是 C# 2。

但是您正在尝试使用 lambda 表达式 (=>) - C# 3 中引入的一个功能。它不是您正在使用的 framework 版本 - 您可以编写VS2008 或更高版本中的相同代码,仍然针对 .NET 2。这是您正在使用的语言的版本。

您可以在 C# 2 中使用匿名方法执行类似的操作:

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

【讨论】:

是的。所以我必须另谋出路? 这就是您对半百万声誉用户的期望:不仅是解释为什么不工作 - 而且是一个适当的解决方法。 :-)【参考方案2】:

C# 语言的起始版本 3.0 支持 Lambda 表达式。 framework 2.0 + Vs 2005 对使用 c# 2.0

【讨论】:

以上是关于无效的表达式术语“>”的主要内容,如果未能解决你的问题,请参考以下文章

HTML 编码块 - 无效的表达式术语 ':'

无效的表达术语“公共”

在javascript中使用时正则表达式无效组错误

如何解决此错误:二进制表达式的操作数无效('std::vector<double>' 和 'double')?

错误:无效的路径表达式。通过 Doctrine 选择查询后必须是 StateFieldPathExpression

正则表达式在测试器中有效,但在我的代码中无效[重复]