内部で WebPages を使用して WebMatrix を使用してページをモックアップしようとしています。匿名オブジェクトの暗黙的に型指定された配列を PageData キーの 1 つに割り当てましたが、コレクションで LINQ メソッドを使用しようとすると、次のエラーが発生します。
CS1977: Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type
サンプルコードは次のとおりです。
@{
PageData["Vals"] = new [] {
new { ID=1, Quantity=5 },
new { ID=2, Quantity=3 }
};
var sum = PageData["Vals"].Sum(x => x.Quantity);
}
最初に配列を通常のオブジェクトに格納すると、LINQ メソッドを問題なく使用できます。動的オブジェクトとして PageData から出てきたときに問題があるようですが、初期型に強制的に戻すための秘密のソースがまったくわからないようです。