我有一個問題,在過去的幾天裏一直在吃我的頭。我無法找到解決方案。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感謝您的回覆。標記的答案解決了它! –