public List<class> someClassList; ???

I need a way so a user can take any class and drag it in to a list field on MainClass
“Edited See Below Comment”

Sounds like you want to use polymorphism.

public abstract class DoingThing {
public abstract void Do();
}

public class MoreSpecificThingOne : DoingThing {
public override void Do() {
Debug.Log("Doing 1!");
}
}

public class MoreSpecificThingTwo : DoingThing {
public override void Do() {
Debug.Log("Doing 2!");
}
}

....

List<DoingThing> listOfThings = new List<DoingThing>();
listOfThings.Add(new MoreSpecificThingOne() );
listOfThings.Add(new MoreSpecificThingTwo() );
foreach (DoingThing thing in listOfThings) {
thing.Do();
}

Naturally, your DoingThing class can inherit from MonoBehaviour if you want that functionality; this is presented as a more bland sort of class. Does this help?

No. my mistake

if i was to give you “MainClass”, when you click on it, over in the inspector, needs to be a way that you can select
say 3 for a size of the list, this will give you 3 elements that you can drag other classes into from the project view.

The “MainClass” will then do actions on your classes, your classes will keep in mind only contain data like so:
public float var1;
public Vector3 var2
public RectTransform var3;

there will be no methods in the classes you provide.

the “MainClass” Method that will loop the classes you provide and do stuff with your data.

If you mean you want a List but in the inspector you want it to figure out the actual subtypes of each thing in the list and display the correct members, then there’s not an easy way to do that with the default Unity inspector. The default Unity inspector will serialize a List into a list of SomeBaseType items and only save that data; any data from any subclasses will be lost. But I would recommend FullInspector from the Asset Store; it can handle situations like this and a lot more.