c#从ArrayList获取对象属性

Tom*_*len 2 c# asp.net arraylist

无法想出这个

我有一个类的ArrayList:

        // Holds an image
        public class productImage
        {
            public int imageID;
            public string imageURL;
            public DateTime dateAdded;
            public string slideTitle;
            public string slideDescrip;
        }

    public ArrayList productImages = new ArrayList();

productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);
Run Code Online (Sandbox Code Playgroud)

现在我如何访问该属性?

int something = productImages[0].imageID
Run Code Online (Sandbox Code Playgroud)

不行!

错误1'对象'不包含'slideTitle'的定义,并且没有扩展方法'slideTitle'接受类型'object'的第一个参数可以找到(你是否缺少using指令或程序集引用?)

Jar*_*Par 11

a中的值ArrayList是键入的Object.您需要强制转换productImage才能访问该属性.

int something = ((productImage)productImages[0]).imageId;
Run Code Online (Sandbox Code Playgroud)

一个更好的解决方案是使用类似强类型的集合List<T>.您可以指定元素类型,productImage并完全避免转换.

public List<productImage> productImages = new List<productImage>();
productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);
int something = productImages[0].imageID;  // Works
Run Code Online (Sandbox Code Playgroud)