2013-05-07 65 views
2

我試圖選擇並從對象的名單像這樣分割的列表:「表達式不能包含lambda表達式」 - 異常

GlobalV.LatestNews.Select(x => x.Source.Split('/').ToList().FindLast(y=> y!="")).ToList(); 

,但我得到了FindLast(y=> y!="")異常說

表達不了包含lambda表達式

我不明白爲什麼!!!?我嘗試了RemoveAll和..etc,但每次都得到相同的異常。

+11

您是否試圖在Visual Studio調試器的watch/quickwatch窗口中運行此操作?如果是這樣,它不支持lambda表達式。 – Lev 2013-05-07 06:38:32

+0

不,這不是同一個問題。當然,我檢查,我調試它,我什麼也沒有空! – kartal 2013-05-07 06:48:19

+0

例外情況是表達式。正常的Linq-to-objects不使用表達式,而是將lambda編譯到代碼中。您的LatestNews有哪些可枚舉的類型?它是一個IQueryable,並且是GlobalV的上下文嗎?這裏涉及EF或L2S嗎? – Maarten 2013-05-07 07:04:58

回答

0

雖然它不能直接解決您的問題,但您爲什麼不讓Split方法處理您嘗試通過最終的lambda表達式解決的部分?

var lastNonEmptySourceEntries = LatestNews.Select(x => x.Source.Split(new []{'/'}, StringSplitOptions.RemoveEmptyEntries).LastOrDefault());