How do I store these Lists I am registering to a List to cleanup later?

I am making a simple Entities system (I know monogame.Extended has one).
I need a way to store component lists I am registering.

Here is code so far.

    public List<T> RegisterComponentList<T>(List<T> compnentList, T defaultValue)
            // Validate
            if (_state == STATE_DEINIT)
                LogMessageDelegate("Entities Simple : Can't initalize component list (system not initalized)", 2);
                return new List<T>(new T[0]);

            // Create Component List
            compnentList = new List<T>(new T[_entityCountMax]);
            for (int i = 0; i < _entityCountMax; i++)
                compnentList[i] = defaultValue;
            return compnentList;

I tried below but no luck.

List<List<T>> registredComponentLists 

I come from C and C++ (Have done C# in the past and need it at this current moment in time).
In those 2 languages you use “void” as a type in list. User just needs to cast to correct type if accessing data. For emptying / deleting lists its not needed to cast.

If you want an absolutely generic list you can just use List<object>. Then you can store any object in the list and cast it into anything you want. T needs to be a type, you don’t declare the list using T, you replace T with whatever object type you want to put into the list. For example List<string> or List<DrawableGameComponent>.

To empty the list you can just call the List’s Clear() method. You do not need to set anything to null or delete the lists. Remember you don’t have to clean up later (if you’re talking memory management). Unless your object implements IDisposable interface, it’ll get automatically cleaned up. Most C# objects do not require explicit memory management unless you’re calling into unmanaged code to access native OS features, etc. There’s not much you can do to “help” the memory recovery process in C# like you would in C or C++, including setting objects to null. You’re best off letting the GC do it’s job and minimize the memory footprint by not allocating more than you need in the first place.

In my case, I used a combination of dictionaries and list, so I can automatically categorize each entity type into groups that I can re-use , so instead of trying to find out the type of object at later stage, a dictionary will categorize them for me making it easier to get what i want from the list.

As mentioned by Ross_Arnold, a list of objects will work , I have added list of objects when unknown types need to be put into a list.