Can I create an array of two Vector3 arrays in C#?

I am trying to create an array called solarSystem that will contain 50 sets of two Vector3 arrays (one for planetLocations and one for planetSizes). I intend to randomly choose a solarSystem, for example solarSystem[7], and then instantiate a planet at planetLocation[0] with a size of planetSize[0], another planet at planetLocation[1] with a size of planetSize[1], and so on (there are 1 - 4 locations/sizes inside these arrays).

I’ve looked into jagged arrays and multidimensional arrays, but have not been able to use them to solve my problem (unsure whether I am using them incorrectly or am simply barking up the wrong tree).

Am I approaching this the right way? How can I store all of this information in a way that I can access in a for loop?

You can use POO instead. Use a struct to store planet information and then create a array/list of Planet for a SolarSystem and then use a list of solar system. So you easily extends your data.

public struct Planet
    public Vector3 location;
    public Vector3 size;

public struct SolarSystem
    public List<Planet> planets;

List<SolarSystem> solarSystems;

//To use something like this
foreach(SolarSystem solarSystem in solarSystems)
    foreach(Planet planet in solarSystem.planets)
        planet.location = ...

If you don’t want to mess with array I also advise you to use List<>

You can simply use two arrays to store the data:

Vector3[] planetLocations = new Vector3[50];
Vector3[] planetSizes = new Vector3[50]

//Set planet 17 to the position (10, 50, 30), and the size (15, 12, 7):
planetLocations[17] = new Vector3(10, 50, 30);
planetSizes[17] = new Vector3(15, 12, 7);

If you want to use a multidimensional array, you would create a 50x2 array, where the first coordinate of each planet is the location, and the second is the size. Not sure why you’d want that, but I’ll throw in the example for posterity:

Vector3[,] planetData = new Vector3[50, 2];

//Set planet 17 to the position (10, 50, 30), and the size (15, 12, 7):
planetData[17, 0] = new Vector3(10, 50, 30);
planetData[17, 1] = new Vector3(15, 12, 7);

Why you want the size of a planet to be a Vector3, as opposed to a float radius beats me - I guess you could create some pretty cool, non-spherical planets, but I’m pretty sure that you’re just confused about something.

If you want to have a bit prettier code, you can wrap the data about your planets in a class, and make an array out of that class instead:

class PlanetData {
    public Vector3 position;
    public float radius; //assuming that you're using a radius for size

    //Constructor, used with "new PlanetData"
    public PlanetData(Vector3 position, float radius) {
        this.position = position;
        this.radius = radius;

PlanetData[] planetDataArray = new PlanetData[50];

//set planet 17 to have the position (10, 50, 30), and the radius 15.
planetData[17] = new PlanetData(new Vector3(10, 50, 30), 15);

That should get you started. I’d suggest looking up some programming tutorials regarding custom classes and arrays. You