2016-11-13 63 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