2011-05-30 194 views
0

也许我没有第一次解释我自己,所以这里是我第二次去解决它。从一个数组中创建一个对象

我需要从数组中的字符串列表中声明对象。

所以我的数组发送到数据库并从一个colums收集名称。这个名字将全部是一个对象。现在我想动态地从列中定义具有该名称的每个对象。

所以数组有5个元素在它的类型字符串。

因此,尽管我看起来似乎不能动态地创建对象。

因此,而不是手动去myobject测试=新myobject();

我只是想通过循环来声明它的数组。

+2

如何定义/分配对象的成员?你的班级是什么样的?编译器非常聪明,但它可能无法预测哪些成员要分配哪些数组值。 – BoltClock 2011-05-30 17:47:51

+0

“myArray”的类型是MyObject的数组? (MyObject []) – 2011-05-30 17:49:20

+0

这个问题对我来说还不清楚,你的意思是“你如何克隆一个数组中的对象,以便数组中的对象与我想访问的对象分离的内存中? – Vinnyq12 2011-05-30 17:49:46

回答

2

我不是很确定你的问题是什么,但如果我看到你的代码比你想在你的数组中创建对象?

也许这是你的解决方案:

MyObject[] myArray = new MyObject[4]; 
for (int i =0; i < myArray.Length; ++) 
{  
myArray[i] = new MyObject(); 
} 

希望这会帮助你。

0
MyObject[] myArray = new MyObject[3]; 
for (int i =0; i < myArray.Length; i++) 
{ 
    MyObject obj = new MyObject(); 
    myArray[i] = obj; 
} 
+0

我想从射线中的元素中创建一个对象。所以说Myarray [1]持有价值测试。我想将它指定为一个对象。 – Andy12 2011-05-30 18:00:09

0

您可以使用System.Linq的select操作符将数组转换为对象。您为阵列中的每个i创建一个对象,然后像这样返回一个新对象

var array = new string[2]{"one","two"}; 
var objects = array.Select(i=> new Object{Name = array[i]}).ToArray(); 
+0

var的数据类型不是C#中的数据类型 – Andy12 2011-05-30 19:11:49

+1

var表示编译器应该为你推断出这种类型......这种方式你不需要输入int []和Object []。自3.0以来,它一直在C#中 – Gluip 2011-05-30 19:27:15