我有两个列表(列表)l1& L2。 我从外面得到了我想要使用的列表的名称(比方说l1)。
我如何找到所要求的清单?
我需要使用getMember方法吗?
感谢
答案 0 :(得分:6)
你可以使用反射,但它相当昂贵。这是一个概述如何做到这一点的问题:
C# Reflection : Finding Attributes on a Member Field
鉴于列表名称在编译时是已知的,您可以考虑实现一个接受列表字符串名称的方法,并使用switch
语句或if
返回对相应列表的引用言。
static IList FindList(string name)
{
if (name == "l1") { return l1; }
else if (name == "l2") { return l2; }
else throw Exception("List " + name + " not found.");
}
这在运行时比使用反射要快但需要维护(如果你有足够的列表来保证工作,你可以编写代码生成该方法)。