C# 使用中的字符串检索对象

C# 使用中的字符串检索对象,c#,C#,在c#中有一个包含许多字符串和整数的大对象。 例如: object.something.something = "somestring"; object.something2.something = "somestring2"; 我还有一个int,它表示对象中的一个元素。例如: object.something.1 = "the content of number 1"; object.something.2 = "the content of number 2"; object.someth

在c#中有一个包含许多字符串和整数的大对象。 例如:

object.something.something = "somestring";
object.something2.something = "somestring2";
我还有一个int,它表示对象中的一个元素。例如:

object.something.1 = "the content of number 1";
object.something.2 = "the content of number 2";
object.something.3 = "the content of number 3";
object.something.4 = "the content of number 4";
等等

如果我有一个变量,它包含一个数字,比如

int number = 3;

我需要使用它来查找
对象的值。something.3

基本上,您有一个要调用的方法/属性的名称。首先我会考虑重新设计程序,但如果你不想,那么你可以使用反射

MethodInfo method = something.getType().GetMethod(number.ToString());
string result = (string)method.Invoke(something);

如果它是一个属性,那么使用
GetProperty(number.ToString()).GetGetMethod()
而不是
GetMethod()

为什么不使用列表或
Dictionary
?您对对象的结构有任何影响吗?如果是这样的话,我建议你重新考虑你的设计作为字典的替代品,你也可以重载类的方括号操作符,并根据需要处理字符串和整数。我已经编辑了我的问题,以使它更清晰。成员名称不能以数字开头。创建一个。