C# 如何更新IEnumerable类属性
我有这个密码C# 如何更新IEnumerable类属性,c#,ienumerable,C#,Ienumerable,我有这个密码 private IEnumerable<HorasVM> InsertarCalendarioValores(IEnumerable<HorasVM> listaHoras, string proyectoId, DateTime fechaInicio, DateTime fechaFin) { IEnumerable<ValoresEnFecha> calendarioValoresFULCRUM; IEnumerable
private IEnumerable<HorasVM> InsertarCalendarioValores(IEnumerable<HorasVM> listaHoras, string proyectoId, DateTime fechaInicio, DateTime fechaFin)
{
IEnumerable<ValoresEnFecha> calendarioValoresFULCRUM;
IEnumerable<ValoresEnFecha> calendarioValoresSERS;
IEnumerable<ValoresEnFecha> calendarioValoresMATRIZ;
decimal realizadoSERS;
decimal realizadoMATRIZ;
foreach (var item in listaHoras)
{
calendarioValoresFULCRUM = GetDesdeHasta(dbFULCRUM, proyectoId, item.EmpleadoId, fechaInicio, fechaFin, item.Type);
calendarioValoresSERS = GetDesdeHasta(dbSERS, proyectoId, item.EmpleadoId, fechaInicio, fechaFin, item.Type);
calendarioValoresMATRIZ = GetDesdeHasta(dbMATRIZ, proyectoId, item.EmpleadoId, fechaInicio, fechaFin, item.Type);
foreach (var mes in calendarioValoresFULCRUM)
{
realizadoSERS = calendarioValoresSERS.Where(c => c.Fecha == mes.Fecha).FirstOrDefault().Realizado;
realizadoMATRIZ= calendarioValoresMATRIZ.Where(c => c.Fecha == mes.Fecha).FirstOrDefault().Realizado;
mes.Realizado += realizadoSERS + realizadoMATRIZ;
}
item.CalendarioValores = calendarioValoresFULCRUM;
}
return listaHoras;
}
在我的方法中,我得到了这个listaHoras
其中,每个项目的属性CalendarioValores为null,我想计算它,因此对于listaHoras中的每个项目,我获取值并将其分配给每个项目
但是当我更新listaHoras中的项目时,该项目仍然具有未分配的CalendarioValores属性
item.CalendarioValores = calendarioValoresFULCRUM;
未更新listaHoras的每个项的属性
有什么想法吗
关于问题是使用只读IEnumerable类型而不是列表
谢谢您是否尝试过用最少的代码重现问题?属性较少的类和业务逻辑较少的类?阅读这个问题有点难。最好删除不必要的属性或与问题无关的方法。您知道调用calendarioValoresFULCRUM=GetDesdeHasta(//etc)会返回任何内容吗?我会将IEnumerable listaHoras作为IList。IEnumerable是readonlyTanks@level_zebra这就是问题所在
public class ValoresEnFecha
{
public string Fecha { get; set; }
public decimal Valor { get; set; }
public decimal Realizado { get; set; }
public decimal Planificado { get; set; }
}
item.CalendarioValores = calendarioValoresFULCRUM;