如何在循环中使用 Collection

How to use Collection in loop

小疑问,在 Update 方法中我有 int 计数,假设计数 == 4,然后我使用 for 循环来获取 ID、版本和设置。 在这种情况下,Id、版本和设置值仅获取最后一个值,但如何获取所有值

我试过了,但我觉得它不对,而且不起作用, 为 id、version 和 set 创建了一个单独的列表, 例如:_details.imageList.Add(logoHeader.LogoID);

  public void Updates(AUnit _aUnit, int Id)
    {
        ImageDetails _details = new ImageDetails(_aUnit, Id);

        int count = (int) _aUnit.ReadBits(8);
        for (int i = 0; i < (int) count; i++)
        {
            _details.ID = (int) _aUnit.ReadBits(8);
            _details.Version = (int) _aUnit.ReadBits(8);
            _details.set = (int) _aUnit.ReadBits(24);
        }

        _details.Rset = _aUnit.Buffer.Skip(10).Take(_details.set).ToArray();

        //MemoryStream ms = new MemoryStream(_details.PortrateImages.First());
        //Image image = Image.FromStream(ms);
        //Bitmap bmp = new Bitmap(image);

        _details.UpdateTime = DateTime.Now.ToString("h:mm:ss tt");
        newData.Add(_details);
    }
public class ImageDetails
  {
    public ImageDetails(AUnit _au, int carouselId)
    {            
        carId = carouselId;
        _AUnit = _au;         

        _updateTime = "";
    }
    private string _updateTime;
    public int ID { get; set; }
    public int Version { get; set; }
    public int set { get; set; }
    public int carId { get; set; }
    public byte[] Rset { get; set; }
    public AUnit _AUnit { get; set; }
    public byte[] bytes { get; set; }
    public List<byte[]> dataArray = new List<byte[]>();

    public string UpdateTime
    {
        get { return _updateTime; }
        set { _updateTime = value; }
    }

    public List<byte[]> PImages
    {
        get
        {
            List<byte[]> Plogos = new List<byte[]>();
            if (carId == 2)
            {
                Plogos.Add(Rset);
            }
            return Plogos;
        }

    }
    public List<byte[]> LImages
    {
        get
        {
            List<byte[]> Llogos = new List<byte[]>();
            if (carId == 1)
            {
                Llogos.Add(Rset);
            }

            return Llogos;
        }

    }
}

您可以将 detail 设为对象 (class) 并列出详细信息。

喜欢,

public class Detail
{
   public int Id{get;set;}
   public int Version{get;set;}
   public int set{get;set;}
}

并列出详细信息,例如

var Details = new List<Detail>();

并且您可以使用 foreach 循环访问它。喜欢,

foreach(var detail in Details){
    Console.log(detail.Id)
    .....
}

希望这对您有所帮助。