我在这个方法上遇到问题,我正在努力返回已添加到列表中的图像,所以当它完成时,所有已添加的图片都可以显示在我拥有的PictureBox上。现在,该方法只是添加图像。所以我希望该方法返回List中的所有图像,这样我就可以在PictureBox上显示它们。任何帮助或建议,我都会非常感激
private List<Image> CollectionOfPictures;
public Image ReturnPictures(List<Image> pics)
{
foreach (Image image in pics)
{
CollectionOfPictures.Add(image);
}
}
答案 0 :(得分:0)
为什么你不能这样做
public List<Image> ReturnPictures(List<Image> pics)
{
return pics;
}
答案 1 :(得分:0)
我看到了几个不同的选项:
或者我可能过度简化了你的问题。在这种情况下,我会要求你重申它。
编辑以回应你的:
你提出的方法是不合逻辑的。一种获取图像列表而只返回一个而不选择返回图像的方法。
我相信你的意思是:
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;
}
答案 2 :(得分:0)
如果您要逐个显示它们,您只需返回CollectionOfPictures的元素即可。 我假设会有一个导航在列表中的图片之间来回移动?你可以做点什么
int currentIndex = 0
public Image getImage() {
return CollectionOfPictures[currentIndex];
}
public void nextPicture() {
//check if currentIndex < the length
currentIndex++;
}
public void prevPicture() {
//check if currentIndex >0
currentIndex--;
}
答案 3 :(得分:0)
你可以这样做
private List<Image> CollectionOfPictures;
public List<Image> ReturnPictures(List<Image> pics)
{
CollectionOfPictures = new List<Image>();
foreach (Image image in pics)
{
CollectionOfPictures.Add(image);
}
return CollectionOfPictures;
}
或只是
public List<Image> ReturnPictures(List<Image> pics)
{
return pics;
}