LINQ与动态对象

时间:2013-06-02 12:31:51

标签: c# linq

尝试排序一堆例子,似乎无法使这项工作......这让我相信我可能会尝试不可能的事情! :)

我在视图中有以下代码:

<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对象。

当我运行它时,我收到以下错误:

如果没有先将lambda表达式转换为委托或表达式树类型,则不能将lambda表达式用作动态调度操作的参数

有没有办法绕过这个并保持我的LINQ查询简单?

1 个答案:

答案 0 :(得分:2)

首先编译,正如编译器所说

   <td>@((IEnumerable<MapTileOrWhat>)(ViewBag.Map.MapTiles)).Where(z => z.X == x && z.Y == y)</td>