我有一个问题,在过去的几天里一直在吃我的头。我无法找到解决方案。Lambda表达式错误
我试图在使用lambda表达式的字符串中找到'\'的出现。代码如下:
Microsoft.Office.Interop.Excel.Range labelSupportTopic = (Microsoft.Office.Interop.Excel.Range)xlWorkSheet.Cells[resultRange.Row, 29];
int count = labelSupportTopic.Text.ToString().Count(c => c == '\\');
我从Excel工作表中获取日期,因此是Interop参考。
什么困扰我的是,这个代码是复制并从一个完全一样的粘贴 VS项目,其大部分的代码我失去了莫名其妙。我很幸运有一部分,这是其中之一。无论如何,在我的另一个VS项目(我失去了代码的项目)上,我能够构建并且看起来很好。但是我目前的项目,我从头开始构建的,它在Build上引发了一个错误。这整个部分,包含这个逻辑的部分从我的旧项目(Builds罚款)中解除。错误信息为“不能首先将lambda表达式作为参数用于动态分派的操作,而无需先将其转换为委托或表达式树型”我搜索了互联网,但无法找到解决方案。
你能帮忙吗?!
如果你在调试模式下运行你的代码,你能看到'Microsoft.Office.Interop.Excel.Range'是否是'dynamic'?如果是这样,那就是你的问题。你不能使用动态的lambda表达式或扩展方法。 – Connor
'... ToString()。Count((Predicate)(c => c =='\\'));' –
@Connor感谢您的回复。标记的答案解决了它! –