带有自定义类的List的“select”或“any”方法

时间:2013-04-03 10:36:52

标签: c# .net linq

我对List<T>的linq方法有疑问,其中T是自定义类。

这是我的班级:

public class RoomWorkingPlan
{
        public Int64 m_IdRoom;
        public Dictionary<DateTime, List<WorkInterval>> workingPlan = new Dictionary<DateTime, List<WorkInterval>>();
}

我正在尝试使用方法any或在这样的列表中选择:

List<RoomWorkingPlan> roomsworking = (List<RoomWorkingPlan>)m_RoomAvailable.Values.Cast<RoomWorkingPlan>().ToList();
DateTime startingDate = DateTime.now;

if (!roomsworking.Any<RoomWorkingPlan>(r => r.workingPlan.ContainsKey(startingDate)))
{
    return false;
}

但是我收到一条错误消息,说“表达式不能包含Lambda表达式”。 有任何想法吗? 在http://msdn.microsoft.com上,所有示例都包含Lamda表达式..

编辑: m_RoomAvailable是一个哈希表,包含int64作为键,RoomWorkingPlan作为值。

1 个答案:

答案 0 :(得分:0)

您尝试在Visual Studio中的 快速监视 窗口( Controllo immediato ,来自评论中的快照)中运行lambda。无法在此窗口中评估Lambda表达式:这是Visual Studio的限制。 Lambda只能在运行时在代码中进行评估。

观看 当地人 立即 windows。

如果要调试lambdas,则必须在代码中使用断点。请注意,您只能访问仿函数(谓词,选择器...)和结果。

了解更多信息:Visual Studio debugging "quick watch" tool and lambda expressions