2013-06-02 74 views
1

嘗試通過一堆示例進行排序,並且似乎無法完成這項工作......這使我相信我可能會嘗試不可能的! :)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表達式作爲參數傳遞給動態調度操作,而不首先將其強制轉換爲委託或表達式樹類型

是否有一個方法來解決這個問題,並保持我的LINQ查詢簡單?

回答

2

演員首先,因爲編譯器說

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

MapTileOrWhat是一個動態的...這似乎沒有任何工作。 – mattruma

+0

應該沒關係。 Linq從事枚舉工作。 Where子句適用於您的動態,由於某些原因,這不起作用。 –

+0

讓我再試一次... – mattruma