2009-10-12 23 views
4

我有一個AspTable與少量的行。我想在集合上運行一個linq Where()來找到並刪除它。TableRowCollection上使用LINQ

mytable.Rows的類型是TableRowCollection mytable.Rows.AsQueryable()表示,它返回一個Linq.Queryable但在這IntelliSense不給我LINQ的運營商。

回答

8

您應該能夠使用:

myTable.Rows.Cast<TableRow>() 

的問題是,TableRowCollection實現IEnumerable,但不IEnumerable<T> - 這是後者是LINQ到對象與工作,主要是。以上將創建一個這將基本輪流投射每個項目。

+0

我希望你已經收錄了更多的信息。我是LINQ的新手,並且停留在同一條船上,但是無法對myTable.Rows.Cast執行LINQ條件計數().Count(n => n.ID.CompareTo(「myRowId」)== 0 ); – 2014-01-29 15:35:29

+0

「不能」是什麼意思?聽起來你應該問一個新問題。 (不清楚你爲什麼使用'CompareTo'而不是'Count(n => n.ID ==「myRowId」)') – 2014-01-29 16:05:49

+0

不知道之前發生了什麼,因爲現在它調試沒有錯誤。 int rowcount = myTable.Rows.Cast ().Count(n => n.ID ==「myRowId」);工作得很好。至於CompareTo,我剛剛被教導不要使用==來進行字符串比較。由於語言之間的切換,它變得更好,但==在這種情況下工作正常。 – 2014-01-29 19:36:43