为了账号安全,请及时绑定邮箱和手机立即绑定

另一个列表(T)中的值列表(T),删除第一个值列表

另一个列表(T)中的值列表(T),删除第一个值列表

C#
慕斯王 2021-11-07 19:17:44
我有一个值列表,其中还有另一个列表,我在 UnixTime 中放置了一系列值及其日期。列出代码。public class ValorES{    public int Fecha { get; set; }    public decimal valor { get; set; }}public class DatosEntSal{    public string PuntoMed { get; set; }    public int NumId { get; set; }    public string Nombre { get; set; }    public string Etiqueta { get; set; }    public string Unidad { get; set; }    public string UmbralInferior { get; set; }    public string BandaMuertaInferior { get; set; }    public string UmbralSuperior { get; set; }    public string BandaMuertaSuperior { get; set; }    public string EscalaEjeMin { get; set; }    public string EscalaEjeMax { get; set; }    public bool AutoEscalaEje { get; set; }    public int Pos_X { get; set; }    public int Pos_Y { get; set; }    public int Alto { get; set; }    public int Ancho { get; set; }    public string MimicoId { get; set; }    public List<ValorES> ValoresRegistrados { get; set; }}代码如下:public List<DatosEntSal> ObtenerEntradasSalidas(){    int _contrato = 14;    List<DatosEntSal> _ValoresEntSal = new List<DatosEntSal>();    List<EntradaSalida> EntradasSalidas = new List<EntradaSalida>();    List<Vista> EntSalVista = new List<Vista>();    List<Registro> data = new List<Registro>();    MonitoreoEntities _context = new MonitoreoEntities();    EntSalVista = _context.Vistas.Where(yy => yy.ID_EntSal != null).ToList();问题:当我在循环中逐步运行程序时,我从“ValueES”列表中获取了所有值。然后我将这些值插入到“DatosEntSal”列表中,在 If 的末尾,我看到内部列表“RegisteredValues”,它具有“ValorES”的所有元素,但是当离开循环并继续 foreach 时取另一个元素,它删除内部列表“注册值”的所有元素,只留下一个。
查看完整描述

2 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

foreach迭代结束时,您有:

datosReg.Clear();

这会清除您刚刚分配给新DatosEntSal实例的列表。您不需要调用 ,Clear()因为变量是在 内部声明的foreach,只需将其删除即可。


查看完整回答
反对 回复 2021-11-07
?
撒科打诨

TA贡献1934条经验 获得超2个赞

您将列表作为参考,因此清除变量datosReg也会清除ValoresRegistrados。如果您希望它保持其值,则从中创建一个新列表:

ValoresRegistrados = datosReg.ToList()



查看完整回答
反对 回复 2021-11-07
  • 2 回答
  • 0 关注
  • 174 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信