You can not destroy lists as they are no GameObjects, so I assume this is an example. But simply store your variables in a container like shown above and you can access them by an id.
Why you not just call the variable? MyClass.myString?
Reflection is slow and you only should use it in editor tools or initialization methods if ther eis no other way to solve your issue.
Maybe you work on such a script, otherwise you should consider to store them not as a variable but in a container as I showed you:
Dictionary<string, string> MyStrings;
//Set Value:
MyStrings.Add(“mystring”,“valueOfMyString”);
//Get Value:
Debug.Log(MyStrings[“mystring”]);