你需要的是像List这样的动态数据结构。
您可以使用通用(即列表)或非通用(即列表)版本。使用列表,您可以动态添加或插入项目,确定其索引并删除项目,只要你喜欢。
当您使用列表操作时,列表大小会动态增大/缩小。
假设你的图像被表示为Image类型的对象,那么你可以使用像这样的列表:
// instantiation of an empty list
List<Image> list = new List<Image>();
// create ten images and add them to the list (append at the end of the list at each iteration)
for (int i = 0; i <= 9; i++) {
Image img = new Image();
list.Add(img);
}
// remove every second image from the list starting at the beginning
for (int i = 0; i <= 9; i += 2) {
list.RemoveAt(i);
}
// insert a new image at the first position in the list
Image img1 = new Image();
list.Insert(0, img1);
// insert a new image at the first position in the list
IMage img2 = new Image();
list.Insert(0, img2);
替代方法通过使用字典:
Dictionary<string, Image> dict = new Dictionary<string, Image>();
for (int i = 0; i <= 9; i++) {
Image img = new Image();
// suppose img.Name is an unique identifier then it is used as the images keys
// in this dictionary. You create a direct unique mapping between the images name
// and the image itself.
dict.Add(img.Name, img);
}
// that's how you would use the unique image identifier to refer to an image
Image img1 = dict["Image1"];
Image img2 = dict["Image2"];
Image img3 = dict["Image3"];
这听起来不错,但我可以通过某个关键字(如文件名)本地化一个对象吗? – phil13131
否索引中索引的列表必须是整数。如果您想通过除数字索引之外的其他地址来映射图像,则必须使用字典。我将在上面扩展我的答案。 –
谢谢,里德科普塞还建议词典。 – phil13131