Hi there,

I'm calling a function which reads XML and holds results in this kind of format:

Item 1: Name="", Category="", InstallerURI=""
Item 2: Name="", Category="", InstallerURI=""
etc.

I need some kind of return variable which will be able to hold this data. So far, I have tried:

// Create struct to hold list attributes
    public struct downloadInfo
    {
        public string[] name, catagory, installer;
    }
    // Lists downloads
    public static downloadInfo downloads()
    {
        downloadInfo downloadlist = new downloadInfo;

Which doesn't work.

// Create struct to hold list attributes
    public struct downloadInfo
    {
        public string name, catagory, installer;
    }
    // Lists downloads
    public static downloadInfo downloads()
    {
        downloadInfo downloadlist = new Array (of) downloadInfo;

But no such 'Array of Struct' method exists.

Jagged arrays have to have a defined length. I don't like that.
Now what? How can I return my data to the caller?

Use your second struct to hold the data. And you are trying to use VB syntax to declare an array. Use:

downloadInfo[] downloadlist = new downloadInfo[size];

where size is the size of the array. If you want a variable size data structure, use List<T>:

List<downloadInfo> downloadlist = new List<downloadInfo>();

Thank you! The List<> thing was just what I was looking for, but unfortunately it doesn't work well as a list of structs, so I reverted back to an array of structs.
I'll have to figure out some way that the data doesn't exceed the array limit, but it's fine for now.

This question has already been answered. Start a new discussion instead.