Wie beschränke ich eine foreach-Schleife n läuft?

7

Angenommen, ich habe die folgende Schleife:

%Vor%

Wie kann ich verhindern, dass es öfter als n Mal ausgeführt wird?

    
trojan man 10.10.2011, 17:26
quelle

6 Antworten

18

Falls rows tatsächlich nur von DataTable.Rows , die angegebenen einfachen Take Antworten funktionieren nicht als DataRowCollection implementiert nur die nicht-generische IEnumerable -Schnittstelle, während LINQ die generische benötigt. Du brauchst etwas wie:

%Vor%

oder

%Vor%     
Jon Skeet 10.10.2011 17:30
quelle
9

Sie könnten es versuchen

%Vor%

Beachten Sie, dass Sie Cast<DataRow>() aufrufen müssen, um DataRowCollection in IEnumerable<DataRow> zu konvertieren, wodurch Sie die Erweiterungsmethode Take() verwenden können.

    
Adam Ralph 10.10.2011 17:29
quelle
3

Option 1: Haben Sie einen laufenden Zähler:

%Vor%

Option 2: Verwenden Sie eine for-Schleife

%Vor%     
Michael Stum 10.10.2011 17:29
quelle
3

Im Idealfall ändern Sie die ursprüngliche Abfrage so, dass nur 50 Zeilen zurückgegeben werden. Es hat keinen Sinn, mehr zu holen, als Sie verwenden möchten.

Andere haben gute Alternativen zur Verfügung gestellt, wenn dies keine Option ist.

    
tenfour 10.10.2011 17:29
quelle
1

Versuchen Sie Folgendes:

%Vor%     
James Johnson 10.10.2011 17:34
quelle
0

Die .Cast<DataRow>().Take(50) Linq Ansätze sind in Ordnung, aber das ist wirklich ein einfaches Problem für eine for Schleife:

%Vor%     
Ed S. 10.10.2011 18:12
quelle

Tags und Links