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

我有一个值列表,其中还有另一个列表,我在 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 时取另一个元素,它删除内部列表“注册值”的所有元素,只留下一个。


慕斯王
浏览 175回答 2
2回答

阿晨1998

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

撒科打诨

您将列表作为参考,因此清除变量datosReg也会清除ValoresRegistrados。如果您希望它保持其值,则从中创建一个新列表:ValoresRegistrados&nbsp;=&nbsp;datosReg.ToList()
打开App,查看更多内容
随时随地看视频慕课网APP