0

List<T>T がカスタム クラスであるa の linq メソッドに問題があります。

これは私のクラスです:

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;
}

しかし、「式にラムダ式を含めることはできません」というエラー メッセージが表示されました。何か案は?http://msdn.microsoft.comでは、すべての例にラムダ式が含まれています。

編集: m_RoomAvailable は、int64 をキーとして、RoomWorkingPlan を値として含むハッシュテーブルです。

4

1 に答える 1

0

Visual Studio で[クイック ウォッチ]ウィンドウ (コメントのスナップショットからControllo immediato ) からラムダを実行しようとしました。このウィンドウではラムダ式を評価できません。これは Visual Studio の制限です。Lambda は、実行時にコードでのみ評価できます。

これは、 WatchLocals、およびImmediateウィンドウにも当てはまります。

ラムダをデバッグする場合は、コードでブレークポイントを使用する必要があります。ファンクター(述語、セレクターなど) と結果にしかアクセスできないことに注意してください。

詳細情報 : Visual Studio の「クイック ウォッチ」ツールとラムダ式のデバッグ

于 2013-04-03T15:00:18.637 に答える