2

Can't figure this one out

I have an ArrayList of classes:

        // 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);

Now how do I access the property?

int something = productImages[0].imageID

Doesn't work!

Error 1 'object' does not contain a definition for 'slideTitle' and no extension method 'slideTitle' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

1
  • 1
    Don't use arraylists in .net 2.0 and later. Commented Sep 8, 2010 at 16:08

3 Answers 3

11

The values in an ArrayList are typed to Object. You need to cast to productImage to access the property.

int something = ((productImage)productImages[0]).imageId;

A much better solution though is to used a strongly typed collection like List<T>. You can specify the element type is productImage and avoid the casting altogether.

public List<productImage> productImages = new List<productImage>();
productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);
int something = productImages[0].imageID;  // Works
Sign up to request clarification or add additional context in comments.

Comments

1

try:

 int something = ((productImage)productImages[0]).imageID;

Needs to be casted from the type object.

Comments

0

Just to get this code up with modern idioms:

public ArrayList productImages = new ArrayList();

productImage newImage = new productImage();
newImage.imageID = 123;
productImages.Add(newImage);

can be re-written as:

var productImages = new List<ProductImage> { new ProductImage { ImageID = 123 } };

1 Comment

Thanks, but I reduced the code in the question for simplicity, the actual code is in a loop getting database records

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.