Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何基于循环在c#中创建(n)个对象_C# - Fatal编程技术网

如何基于循环在c#中创建(n)个对象

如何基于循环在c#中创建(n)个对象,c#,C#,假设我想创建名为DT(n)的(n)个数据表。。。我怎样才能循环进行呢 下面是伪代码 int n=99; for (int i = 0; i < n; i++) { DataTable DT + n = new DataTable(); // <--- this } int n=99; 对于(int i=0;i

假设我想创建名为DT(n)的(n)个数据表。。。我怎样才能循环进行呢

下面是伪代码

int n=99;

for (int i = 0; i < n; i++)
{
    DataTable DT + n = new DataTable(); // <--- this
}
int n=99;
对于(int i=0;iDataTable DT+n=newdatatable();//不能在C#中创建动态命名的变量。

出于您的目的,最好使用数组或字典()

不,C#中不能有动态变量名

但是,您可以将它们放入数组中(无论如何,这是一种更好的方法):

int n=99;
DataTable[]DT=新的DataTable[99];
对于(int i=0;i
将它们存储在数据结构中

Enumerable.Range(0,n).Select(x => new DataTable()).ToArray()
试一试

List DTs=new List();
int n=99;
对于(int)(i=0;i你能试试这个吗

public List<T> CreateObjects<T>(int numbers) where T: new()
{
   List<T> _return = new List<T>();
   for (int i = 0; i <= numbers; i++)
   {
      _return.Add(new T());
   }

   return _return;

}
public List CreateObjects(整数),其中T:new()
{
列表_return=新列表();

对于(int i=0;我可以使用数组吗?不,这是不可能的。但是你可以创建一个数据表数组或它们的其他集合。使用
New
是VB,
New
是C#。它们不会混合:)@BradleyDotNET::Oops!!我的错。谢谢你指出这一点。:)这个答案出现在低质量审查队列中,可能是因为您没有解释某些内容。如果您确实解释了(在您的答案中),您更有可能获得更多的投票,提问者实际上学到了一些东西!或者只是可枚举。重复(new DataTable(),n)@TimSchmelter,这将为您提供
n
DataTable
的相同实例的引用,而不是
n
DataTable
的实例的引用。这对OP的帮助可能比那些更奇特的答案大得多。虽然这是一段很好的通用代码,但它没有解释,实际上与LINQ答案相同(但更令人困惑的是,这个问题从来都不是关于泛型的)。是的,我知道,但这只是get idea的一个例子
List<DataTable> DTs = new List<DataTable>();
int n =99;
for(int(i=0;i<n;i++)
{
    DataTable DT = new DataTable();
    DTs.Add(DT);
}
public List<T> CreateObjects<T>(int numbers) where T: new()
{
   List<T> _return = new List<T>();
   for (int i = 0; i <= numbers; i++)
   {
      _return.Add(new T());
   }

   return _return;

}
var myList = CreateObjects<DataTable>(100);
var myList = CreateObjects<AnyClass>(100);