En supposant que j'ai la boucle suivante: Comment puis-je le garder d'exécution plus souvent que n fois? p> p> p>
6 Réponses :
Vous pouvez essayer note que vous devez appeler casting
datarswcollection code> à < Code> iEnumerable
prise () code>. p> p>
Avez-vous essayé ce code? Il n'y a pas de méthode code> code> directement disponible sur le datarswcollection code>.
Option 1: avoir un compteur en cours d'exécution:
for(int i = 0; i <= 50; i++) { // This might actually crash if there are fewer than 50 rows var row = rows[i]; }
Idéalement, modifiez votre requête d'origine pour renvoyer seulement 50 lignes. Il ne sert à rien de chercher plus que ce que vous voulez utiliser. P>
D'autres ont fourni de bonnes alternatives si ce n'est pas une option. P>
Dans l'affaire ou p> Les lignes code> sont réellement issues de
datatable.Rows code>
, le simple prend code> Les réponses données ne fonctionneront pas comme
datarswcollection code>
implémente uniquement l'interface ienumerable code> non générique, alors que LINQ a besoin du générique. Vous aurez besoin de quelque chose comme:
Vous m'avez fait hésitant à corriger les fautes de frappe;) était le signe plus à la fin du deuxième exemple intentionnel?
@Jamesjohnson: Nope, juste une faute de frappe cette fois :)
Essayez ceci:
foreach (DataRow dr in table.Rows.Cast<DataRow>().Take(50)) { //your logic }
Le .Cast
Pour un nouveau programmeur, veillez à examiner les réponses qui font des compteurs explicites dans des boucles, même si vous allez finalement pour l'une des approches
prendre (50) code>.
@Anthonypegram: Très bonne suggestion pour quelqu'un qui apprend.