2016-09-22 9 views
0

foreachを最後の反復で停止する方法を知る必要があります。なぜか分かりませんが、必要以上に繰り返しています。foreachが最後のステップを実行しない方法 - ASP.NET C#

以下はコードです。

var rslista = result.Tables[0]; 
foreach (DataRow row in rslista.Rows) 
{ 
} 
+1

データテーブルに存在するすべての行についてループスルーします。空の行がデータテーブルに入力されている可能性があります。私はあなたの問題は、あなたのデータテーブルにデータをロードするか、あなたの中のヌル値を扱うことであると信じています – techspider

+0

明示的な型の代わりに 'var'を持っているので、最後の変数のアドレスが 'row'の現在の値と等しいかどうかをチェックし、ループを単に'中断 'することができます。 – Cody

+0

'foreach(rslista.Rows.CastのDataRow行().Skip(rslista.Rows.Count - 1))' – Hackerman

答えて

0

は、あなたのforeachループ内のブレークポイントを設定し、あなたがすべきではないと感じ、その上にループされている実際の行を見てみましょう。

時には、newrowオブジェクトがデータテーブルにプリセットされる設定があります。そのような行をスキップするには、データが存在すると予想される列の行状態をチェックするか、NULL値をチェックします。continueコマンドを使用して行をスキップできます。

このコードをコピーアンドペーストしないでください。データの内容を分析し、以下の概念のいずれかが役立つかどうかを判断してください。

DataTable dt = new DataTable(); 

foreach (DataRow dr in dt.Rows) 
{ 
    if (dr.RowState == DataRowState.Added) 
     continue; 

    if (dr.RowState == DataRowState.Detached) 
     continue; 


} 
関連する問題