2017-01-10 8 views
1

選択したdataRowには、全部で200個のデータレコード行があります。今私は200レコードを20回(10回(forループ))に分割する必要があります。私はtake(20)を使います。最初の20レコードが必要です。Cでのdatarowの繰り返し#

最後に最初の20レコードを削除し、別の20レコードを選択する必要があります。ループで10回実行して200レコードすべてを取得する必要があります。

DataRow[] selectedDataRow = dtSMSDetails.Select("description = '" + smsDescription + "'"); 

if (selectedDataRow.Length > 0) 
{ 
    string smsRecordId = ""; 
    string mobileNum = ""; 
    string smsSubject = ""; 

    foreach (DataRow rows in selectedDataRow.Take(20)) 
    { 
     smsRecordId += rows["activityid"].ToString() + ","; 
     smsSubject = rows["subject"].ToString(); 
     mobileNum += rows["telephone1"].ToString() + ","; 
     // Here I need to remove the first 20 (take 20) records from the selected data row and need to loop next 20 records. 
    } 
} 
+2

'.SKIP(20).Take(20)'次のバッチを取得を使用することができます。 – stuartd

+0

@stuartd最初のforループで1〜20レコードをスキップし、21〜40レコードを取得する – User

答えて

3

あなたはSkip()

int startIndex = 0; 

for (int i = 0; i < 10; i++) 
{ 
    foreach (DataRow rows in selectedDataRow.Skip(startIndex).Take(20)) 
    { 
     smsRecordId += rows["activityid"].ToString() + ","; 
     smsSubject = rows["subject"].ToString(); 
     mobileNum += rows["telephone1"].ToString() + ","; 
    } 

    startIndex += 20; 
} 

Read more

+0

これは最初の20レコードをスキップして、21〜40レコードをスキップした場合です – User

+0

更新私の答えは少しです。この場合、変数 'startIndex'のどこかでスキップしたい量を格納する必要があります。 – VDWWD

+0

ありがとうございました..あなたは私の日を救います.... – User