the DataFrame class must contain 2 Generic types for the index type and value types
index type can be int, double, datetime, string (really everything if you look pandas in python)
value type is like in NDArray
Index must also be generic because it can be int, double, string and datetype (in python they write classes for this Datetimeindexclass, integerindexclass, ... we should use generics because this is C# strength)
since datas (columns) are accessed like column1 = df['column1'] I suggest we use a internal protected Dictionary (NDArray uses array for storage, dataframe shall use dictionary)
To verify all I adapted the unit Tests (they work - thats why i push ;) )