【发布时间】:2019-07-03 09:07:17
【问题描述】:
我有几个这些类的列表。
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();
【问题讨论】:
-
使用 Automapper 来完成这项任务,可以很容易地将对象值映射到不同的对象
-
没有 foreach 循环 为什么你不想使用循环? Linq 将在后台使用它们
-
好的,所以
_imageList是List<Image>类型,然后你按ImageID和ImageBytes分组,那么之后会发生什么?你想要一个ImageView [ ]的数组作为结果吗?抱歉,我还不明白 -
"将 blah 中的值分配给我的 Imageview。"
blah将有多个键值,您打算如何将其映射到单个Imageview?或者它是一个错字,你的意思是复数? -
抱歉,这是不可能的。要么您编写一个循环并执行此操作,要么您使用现有的解决方案,这反过来会在内部为您执行循环。