2012-12-13 84 views
1

我有有一个属性在它VehicleId的旅程的一个通用的清单,我想从旅程列表中得到不同的车辆ID列表的LINQ选择不同

我已经尝试使用以下:

Journeys.Select(j => new { j.FleetVehicleId }).Distinct(); 

,但我所遇到的

Expression cannot contain lambda expressions 

错误有谁知道我在做什么错在这里或如何做到这正常吗?

+3

我认为你正试图在快速监视下运行你的代码,结果你得到了那个错误。你不能将lambda表达式调试到快速观察窗口。尝试将您的代码注入调试。你的代码似乎没问题,但我会纠正它,并将其更改为Journeys.Select(j => j.FleetVehicleId).Distinct(); – lante

+0

谢谢@lante,这是因为我试图调试它,看看我得到了什么。如果你把答案,我可以标记它 – Pete

+0

完成,感谢你 – lante

回答

2

我认为你正试图调试代码到快速监视窗口和结果你得到这个错误。

您不能将lambda表达式调试到快速监视窗口中。尝试在调用lambda表达式后调试代码。例如:

var testing = Journeys.Select(j => j.FleetVehicleId).Distinct(); 
// debug testing value here, after lambda expression runs 

代码似乎没问题。

2

怎么样:

Journeys.Select(j => j.FleetVehicleId).Distinct(); 
+0

这不是一个lambda? –

+0

您可以在正常的C#代码中使用Select()中的lambdas。请参阅lante的评论。 – dthorpe

+0

我可以想象问题出现了,如果Journeys不是可枚举的,那么它就是一个可查询的对象。然后独特的操作“反编译”表达式。问题中的构造包含一个匿名对象,它可以创建更多的错误来源 – user287107