[英]C# Dynamically reference objects in loop
我不知道这是否可行。 我想做的是引用一个DataTable(和其他对象,但是让它工作一个将使其余工作变得容易)并将其用作参数,但是我想循环执行此操作,以便可以执行与每个DataTable dt1,dt2,dt3等一起使用。类似这样的东西(尽管这显然不起作用):
for (int i = 0; i <= max; i++)
{
Load("dt"+i);
}
这实际上可行吗?
将所有DataTable
放入一个数组中:
var dataTables = new[] { dt1, dt2, dt3 };
foreach(var dt in dataTables)
// ...
我建议使用Anton Gogolev建议的方法。 但是,您可以使用' System.Reflection '名称空间来实现它。 这是一个例子。 请注意, DataTable
成员必须是public
的, GetField
才能工作。
public DataTable dt0 = new DataTable();
public DataTable dt1 = new DataTable();
public DataTable dt2 = new DataTable();
public void findall()
{
DataTable temp;
for (int i = 0; i < 3; i++)
temp = (DataTable)this.GetType().GetField("dt" + i.ToString()).GetValue(this);
}
是的,有可能做。 如果可以在编译时引用它们,则可以将它们粘贴在数组中,如Anton所说。 否则,您必须使用Reflection与他们一起工作。 无论哪种方式,DataTable实例都必须存储在某个变量中的某个位置。 您能否再提供一些背景信息? 数据表来自哪里?
foreach( var dt in new List<int>() { dt1,dt2,dt3,dt4,dt5 })
{
// do something
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.