与我所看到的相比,您有几个不同的选择:
- 将您的图像列表公开给正在绘制图像的任何内容(也就是将其公开)
- 列表是引用类型,因此如果您不能执行 #1,则按值传递它应该保留添加到其中的任何内容。
或者也许我过度简化了你的问题。在这种情况下,我会要求你重述它。
编辑以回应您的:
你提出的方法不合逻辑。一种获取图像列表同时仅返回一个而不选择返回哪个图像的方法。
我相信你的意思是:
private List<Image> CollectionOfPictures;
public List<Image> ReturnPictures(List<Image> pics)
{
foreach (Image image in pics)
{
CollectionOfPictures.Add(image);
}
}
可以更好地表示为:
private List<Image> CollectionOfPictures;
public List<Image> ReturnPictures(List<Image> pics)
{
return CollectionOfPictures.Concat(pics).ToList();
}
或者直接使用Linq方法一起跳过该方法。
或保留调用之间的列表:
private List<Image> CollectionOfPictures;
public List<Image> ReturnPictures(List<Image> pics)
{
return (CollectionOfPictures = CollectionOfPictures.Concat(pics).ToList());
}
并且没有 LINQ:
private List<Image> CollectionOfPictures;
public List<Image> ReturnPictures(List<Image> pics)
{
foreach (Image image in pics)
{
CollectionOfPictures.Add(image);
}
return CollectionOfPictures;
}