簡體   English   中英

c# - 如何將對象列表中的值分配給另一個列表

[英]How to assign values from an object list to another list in c#

我有幾個這些類的列表。

public class Image
{
    public int ImageID { get; set; }
    public int JobAddressID { get; set; }
    public DateTime CreatedDate { get; set; }
    public string Name { get; set; }
    public string Extension { get; set; }
    public string Type { get; set; }
    public Byte[] ImageBytes { get; set; }
    public int Imagetag { get; set; }
}

public class ImageView
{
    public int tag { get; set; }
    public byte[] ImageData { get; set; }
    public DateTime CreatedDate { get; set; }
    public string Name { get; set; }
}

我想要的是將一個列表中的值分配給另一個列表,而沒有可怕的 foreach 循環,也許使用 linq 的東西?

我的列表是(它們已實例化並准備就緒)

 List<Image> _imageList 
 List<ImageView> ImageView

偽代碼

ImageView.tag = Image.ImageID
 ImageView.ImageData = ImageBytes

我已經試過了,但我仍然需要另一個循環來將 blah 中的值分配給我的 Imageview。

var blah = _imageList.GroupBy(i => new { i.ImageID, i.ImageBytes }).ToArray();

在創建新ImageView的分組之后,您似乎需要一個Select

var blah = _imageList.GroupBy(i => new { i.ImageID, i.ImageBytes })
                     .Select(x => new ImageView
                     {
                        tag = x.Key.ImageID,
                        ImageData = x.Key.ImageBytes
                     }).ToList();

免責聲明:我沒有考慮其他 2 個屬性,因為您沒有在問題中指定它們。

注意按byte [ ]分組可能會導致意外結果。 請注意,比較將在數組的引用之間進行,而不是在它們的內容之間進行。 因此,如果不同的對象確實共享單個byte [ ] ImageBytes相同引用,那么您將只有相同的組

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM