nested struct as members in a class

I am writing a class which holds 90 integer variables. There are basically 10 but each has 3x3 attributes, making them 90. I'll explain it further.

So the 10 variables I have are: v0, v1, v2, ..., v9. Each of these has 3 different values for city, county and state. Also, each of these has 3 different values for past, present and future.

So, a typical value would be: v3.City.Future or v7.State.Past or v8.County.Present.

I was thinking to implement a class, with 10 structs for each variable, then each of those struct has a 3 nested structs (for city, county and state) and each of those structs has 3 integer variables for past, present and future.

This is still in conceptual phase. I tried to go with the above mentioned approach but it is not working. Please feel free to give any suggestions.

Thanks.

UPDATE:

Here is the code snippet:

public class MyClass
{
    public MyVariable myvariable;
}

public struct MyVariable
{
    public struct National
    {
        public int Past { get; set; }
        public int Present { get; set; }
        public int Future { get; set; }
    }
    ...
}

Now when I instantiate the class and access the member (myclass.myvariable.National.Past), it does not get the member.


Solution 1:

Here is the answer to this:

public struct PeriodVars
{
    public int Past { get; set; }
    public int Present { get; set; }
    public int Future { get; set; }
}

public struct VarStruct
{
    public PeriodVars City;
    public PeriodVars County;
    public PeriodVars State;
}

Now the class will be:

public class MyClass
{
    public VarStruct v0;
    public VarStruct v1;
    ...
}

Once I instantiate an object of the class, I can refer it to like this:

objMyClass.v0.City.Past = 111;

There wasn't much help I got by posting it here besides criticism.

Often, one person's inability to understand is seen as another person's inability to explain. I spent 15-20 minutes writing the question and people started down-voting it in less than 30 seconds.

Solution 2:

Looks like you are mixing types and instances based on your comment:

Assuming your MyVariable looks following:

public struct MyVariable
{
    public struct National
    {
       public int Past;
    }
  public National ValueForNational;
}

myclass.myvariable.National - it is a type (will not compile)

myclass.myvariable.National.Past - it is a member of a type (will not compile)

myclass.myvariable.ValueForNational - is value for a member of MyVariable member inside MyClass' variable (would compile)

myclass.myvariable.ValueForNational.Past - is one that you probably want...