如何将对象/结构转换为arraylist?

时间:2009-03-09 11:59:42

标签: c# .net

我在C#.net中有一个结构。我创建了一个该结构的对象。我需要将这个结构对象转换为ArrayList。 我正在使用:

OrderMessageStructure.OrderMessage orderToModify = new OrderMessageStructure.OrderMessage();

object neworderobject = (object)orderToModify;
ArrayList arr = new ArrayList();
arr = (ArrayList)neworderobject;

但我收到错误“无法将'OrderMessage'类型的对象强制转换为'System.Collections.ArrayList'。”

如何将对象/结构转换为ArrayList?

4 个答案:

答案 0 :(得分:4)

您不能将任何对象转换为C#中的另一个对象。它是一种类型安全的语言。

您需要为其创建ArrayListAdd()结构。

更好的是,创建一个List<StructType>()并将结构添加到其中。

CLR Via C#。阅读它。


OrderMessageStructure.OrderMessage orderToModify = 
  new OrderMessageStructure.OrderMessage();

ArrayList arr = new ArrayList();
arr.Add(orderToModify);

答案 1 :(得分:2)

您的问题没有足够的信息来确定答案。

如果要创建OrderMessage对象的ArrayList,则需要创建arraylist FIRST,然后创建OrderMessage的ADD实例。

如果你想要一个强类型的OrderMessage ArrayList,那么可以使用Generic Namespace中的List和OrderMessage的ADD实例。

如果OrderMessage中有一个数组结构,那么你需要为它添加一个返回arraylist的方法。您必须编写将OrderMessage转换为ArrayList的代码。

答案 2 :(得分:1)

您无法转换这两个对象,因为它们具有完全不相关的类型。为了使强制转换成功,OrderMessage必须从ArrayList继承,这几乎肯定不是你想要的。您更有可能想要将OrderMessage添加到ArrayList中,这可以像这样完成。

ArrayList arr = new ArrayList();
arr.Add(orderToModify);

答案 3 :(得分:1)

无需投射物体。只需将它们添加到您的arraylist:

ArrayList list = new ArrayList();
list.Add(myObject);

但更好的选择是使用通用列表:

List<MyObject> list = new List<MyOjbect>();
list.Add(MyObject);

通用列表的优点在于它是强类型的,因此当将对象从列表中拉出时,您不必将对象强制转换回类型。