避免 Foreach 语句中模型中的空数据

问题描述 投票:0回答:1

我有这个循环,可以比较我的模型 1 的数据:

        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);
        }

但是我的记录中的第一个字段。Data 是一个空字段,因此我的 foreach 给了我一个“System.ArgumentOutOfRangeException”

如何避免“数据”字段中出现空数据,它是一个列表,第一个列表是空的

如果有帮助的话我可以展示 LinQ 代码

编辑

通过在 foreach 循环中添加

if
语句解决了问题

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);
 }            
 }
c# linq list
1个回答
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);
    }
© www.soinside.com 2019 - 2024. All rights reserved.