0

たくさんの例を整理してみると、うまくいかないようです...これは、私が不可能なことを試みているのではないかと思わせてくれます! :)

私のビューには次のコードがあります。

<fieldset>
    <legend>Map</legend>
    <table class="map">
        @for (var y = 0; y <= (int)ViewBag.Map.Height; y++)
        {
            <tr>
                @for (var x = 0; x <= (int)ViewBag.Map.Width; x++)
                {
                    <td>@ViewBag.Map.MapTiles.Where(z => z.X == x && z.Y == y)</td>
                }
            </tr>                
        }
    </table>
</fieldset>

マップはdynamicオブジェクトです。

これを実行すると、次のエラーが表示されます。

最初にデリゲートまたは式ツリー型にキャストしないと、ラムダ式を動的にディスパッチされる操作の引数として使用できません

これを回避し、LINQ クエリをシンプルに保つ方法はありますか?

4

1 に答える 1

2

コンパイラが言うように、最初にキャストします

   <td>@((IEnumerable<MapTileOrWhat>)(ViewBag.Map.MapTiles)).Where(z => z.X == x && z.Y == y)</td>
于 2013-06-02T12:53:14.460 に答える