2013-05-07 49 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());