2009-10-12 7 views
4

J'ai un AspTable avec un petit nombre de lignes. Je veux lancer un linq Where() sur la collection pour en trouver un et le supprimer. Mytable.Rows est de type TableRowCollection mytable.Rows.AsQueryable() dit qu'il retourne un Linq.Queryable mais que l'intellisense ne me donne pas mes opérateurs Linq.en utilisant linq sur TableRowCollection

Répondre

8

Vous devriez pouvoir utiliser:

myTable.Rows.Cast<TableRow>() 

Le problème est que TableRowCollection implémente IEnumerable, mais pas IEnumerable<T> - et c'est la dernière que LINQ to Objects travaille avec, principalement. Ce qui précède va créer un qui va fondamentalement lancer chaque élément à son tour.

+0

Je souhaite que vous aviez inclus plus d'informations. Je suis nouveau à LINQ et coincé dans le même bateau, mais ne peux pas faire un compte conditionnel LINQ sur myTable.Rows.Cast () .Count (n => n.ID.CompareTo ("myRowId") == 0) –

+0

Que voulez-vous dire par "ne peut pas"? Il semble que vous devriez poser une nouvelle question. (Il n'est pas clair pourquoi vous utilisez 'CompareTo' plutôt que simplement' Count (n => n.ID == "myRowId") 'soit.) –

+0

Vous ne savez pas ce qui se passait auparavant car maintenant il débogue sans erreurs. int rowcount = maTable.Rows.Cast () .Count (n => n.ID == "myRowId"); fonctionne parfaitement bien. En ce qui concerne le CompareTo, on m'a juste appris à ne pas utiliser == pour la comparaison de chaînes. En raison de la commutation entre les langues, cela a été pour le mieux, mais == fonctionne bien pour ce cas. –

Questions connexes