2016-11-13 110 views
-1

我有這個循環至極從我的模型1比較數據:避免模型空數據foreach語句

 foreach (var record in model_pdv) 
     { 
      foreach (var dish in record.Data) 
      { 
       int index = dish.Fecha.Day; 
       record.Days[index] = dish.Cantidad; 
       record.TotalQuantity += dish.Cantidad; 
      } 
      record.TotalPrice = (record.TotalQuantity * record.Precio); 
     } 

但是我在我的record.Data第一場空場,所以我的foreach給我一個「System.ArgumentOutOfRangeException」

如何避免在我的「數據」領域,其名單和第一空表數據爲空

我可以顯示LINQ的代碼,如果它有助於

編輯****************************

解決 解決了我的foreach循環添加的聲明如果問題

foreach (var record in model_pdv) 
     { 
    if (!record.Data.Any()){ 
      foreach (var dish in record.Data) 
      { 
       int index = dish.Fecha.Day; 
       record.Days[index] = dish.Cantidad; 
       record.TotalQuantity += dish.Cantidad; 
      } 
      record.TotalPrice = (record.TotalQuantity * record.Precio); 
}    
} 

回答

0

更新:有關數據類型的更多信息將是有益的.. 試試這個:

這個怎麼樣?

foreach (var record in model_pdv.Where(r => r.Data != null)) 
    { 
     foreach (var dish in record.Data) 
     { 
      int index = dish.Fecha.Day; 
      record.Days[index] = dish.Cantidad; 
      record.TotalQuantity += dish.Cantidad; 
     } 
     record.TotalPrice = (record.TotalQuantity * record.Precio); 
    } 
+0

這部分顯示錯誤,我的「R?。數據」無效:( –

+0

還是同樣的問題,因爲它的數據有一個空值至極我想避免 –

+0

我還是不明白它做好。問題是,這個foreach沒有空數據的問題,空數據是一個沒有item的數組,列表中沒有任何項,但是不爲null,null不爲空,null不存在...現在索引可以不存在範圍,但不是foreach ... – ipavlu