2017-06-30 8 views
0

小さな疑問、私はintカウントを持っていたが、count == 4と言うと、forループを使ってid、version、setを取得しています。この場合 ID、バージョンとだけ最後の値を取得して設定された値が、どのようにID、バージョン、およびセットのための別々のリストを作成し、私が試したが、私はその間違ったと働いていないと感じ、 すべての値コレクションのループを使用する方法

を取得します、 例:_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; 
     } 

    } 
} 

答えて

0

detailをオブジェクト(クラス)にして詳細のリストを作成できます。

よう

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

など細部のリストを作成し、

var Details = new List<Detail>(); 

、あなたはforeachループを使用してアクセスすることができました。 like、

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

これが役に立ちます。

+1

ありがとう、私はこのようにしました。リスト obj =新しいリスト(); int uCount =(int)accessUnit.ReadBits(8); for(int i = 0; i <(int)uCount; i ++) { 詳細logoDetails = new LogoDetails(); 詳細.LogoID = ... Details.LogoVersion = .. 詳細。オフセット= ... obj.Add(logoDetails); } のforeach(LogoDetailsがobjにLISTITEM) {logoHeader.ROffset = accessUnit.Buffer.Skip(10).Take(listitem.Offset).ToArray(); } –

+0

あなたが@ArjunReddyを助けた場合、これを回答としてマークすることができます –

+0

私はこの方法を試したことを意味します、それはうまくいかず、私は間違いをしていますか? –

関連する問題