在c#下。
我是这样写的 Order[] mOrders = entities as Order[];
其中 Order是实体类,entities 是 System.Collections.Generic.List
系统编译时提示:无法将类型“System.Collections.Generic.List<object>”转换为“Web***.Test.Order[]”=====================================================
另:
如果就转一个可以,如:
Order order = (Order)entities[0] 。
那如果转换为一个 实体数组的话,怎么转换才可以啊?
我目前想到是一个一个转,但麻烦。你们有好办法么?
我是这样写的 Order[] mOrders = entities as Order[];
其中 Order是实体类,entities 是 System.Collections.Generic.List
系统编译时提示:无法将类型“System.Collections.Generic.List<object>”转换为“Web***.Test.Order[]”=====================================================
另:
如果就转一个可以,如:
Order order = (Order)entities[0] 。
那如果转换为一个 实体数组的话,怎么转换才可以啊?
我目前想到是一个一个转,但麻烦。你们有好办法么?
你直接foreach就可以直接用
Order[] mOrders = new Order[count];
entities .CopyTo(mOrders);
我用您的办法是可以的。
================================================
to sp1234:
1、 你说的:从List转换为Array使用 ToArray 方法。
你说的办法我试过,不行,会提示“无法将类型为“System.Object[]”的对象强制转换为类型“Websharp.Test.Order[]”。
2、我用的是一个开源的ormap的框架,我看了下你所说的“偷换回来List<object>”,是框架内部的一个方法(查询到数据,将数据放到lsit里面)用的。
3、谢谢您的忠言!
---------
怎么能这样写?一个是 list 类型,一个是 Array 类型。应该写成:
Order[] mOrders = entities.ToArray(typeof(Order)) as Order[];
按您的方法,编译提示:
“ToArray”方法没有采用“1”个参数的重载
按您的方法,编译提示:
“ToArray”方法没有采用“1”个参数的重载
======================================Sorry,这里只是给个类似的提示,这是 ArrayList 的方法,List<T> 的话,直接
Order[] mOrders = entities.ToArray();就可以了