请教一个类型转换问题,谢谢。

amwggyy504 2010-05-30 07:01:08
大家好请教一下问题:
CategoryList的类型是Collection<Category>
但我这样赋值却有类型转换错误:Collection<object> obj2 = CategoryList,请问要怎么转换?谢谢。难道要写foreach转吗?
foreach (var temp in obj)
{
obj2 .Add(temp);
}
有没有更好的办法的??
...全文
192 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
boringame 2010-06-06
  • 打赏
  • 举报
回复
相对来说,效率已经被M$优化过的。虽然可能不如强制转换,但是应该不会有效率问题。
amwggyy504 2010-06-01
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 amwggyy504 的回复:]
引用 13 楼 army369168520 的回复:
引用 12 楼 amwggyy504 的回复:
引用 10 楼 boringame 的回复:
Collection<object> collection=new List<object>(CategoryList.ToArray())

嗯 ,这个思路可以,但这样转也会出错。我把它改成了: new Collection<object>……
[/Quote]
难道只能用这种方法??
amwggyy504 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 xk1126 的回复:]
Collection<object> obj2 = CategoryList as Collection<object>;
[/Quote]
不行,这样会出错。
amwggyy504 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 army369168520 的回复:]
引用 12 楼 amwggyy504 的回复:
引用 10 楼 boringame 的回复:
Collection<object> collection=new List<object>(CategoryList.ToArray())

嗯 ,这个思路可以,但这样转也会出错。我把它改成了: new Collection<object>(CategoryList.ToArray())。倒是可……
[/Quote]
有没有更好的解决办法??
xk1126 2010-05-31
  • 打赏
  • 举报
回复
Collection<object> obj2 = CategoryList as Collection<object>;
army369168520 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 amwggyy504 的回复:]
引用 10 楼 boringame 的回复:
Collection<object> collection=new List<object>(CategoryList.ToArray())

嗯 ,这个思路可以,但这样转也会出错。我把它改成了: new Collection<object>(CategoryList.ToArray())。倒是可以用。但不知道这样做的效率会怎么样???
[/Quote]
效率不高
amwggyy504 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 boringame 的回复:]
Collection<object> collection=new List<object>(CategoryList.ToArray())
[/Quote]
嗯 ,这个思路可以,但这样转也会出错。我把它改成了: new Collection<object>(CategoryList.ToArray())。倒是可以用。但不知道这样做的效率会怎么样???
兔子-顾问 2010-05-30
  • 打赏
  • 举报
回复
楼上一句话方法版本的确不错。
boringame 2010-05-30
  • 打赏
  • 举报
回复
Collection<object> collection=new List<object>(CategoryList.ToArray())
xrongzhen 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 amwggyy504 的回复:]
大家好请教一下问题:
CategoryList的类型是Collection<Category>
但我这样赋值却有类型转换错误:Collection<object> obj2 = CategoryList,请问要怎么转换?谢谢。难道要写foreach转吗?
foreach (var temp in obj)
{
obj2 .Add(temp);
}
有没有更好的办法的??
[/Quote]

应该不行,可以试下能否将CategoryList转化为Collection<object>如果行,可直接赋值,否则不行
兔子-顾问 2010-05-30
  • 打赏
  • 举报
回复
貌似不能转换。只能自己复制
Collection<Category> CategoryList=new Collection<Category>();
Collection<object> obj2 = new Collection<object>();
foreach (Category item in CategoryList) obj2.Add(item);
请叫我卷福 2010-05-30
  • 打赏
  • 举报
回复
Collection<object>和CollectIon<Category>根本就是没有关系的两个类型。。。

amwggyy504 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qygcom 的回复:]
object obj2=Category;是装箱操作,引用泛型就是要避免这种情况。
所以你应写成Collection<Category> obj2 = CategoryList;
[/Quote]
因为我要转的参数就是Collection<object>型的,所以我传Collection<Category> 的时候就会报错了。
第三方控件需要的是Collection<object>类型的参数。
qygcom 2010-05-30
  • 打赏
  • 举报
回复
object obj2=Category;是装箱操作,引用泛型就是要避免这种情况。
所以你应写成Collection<Category> obj2 = CategoryList;
amwggyy504 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hzzasdf 的回复:]
Collection<object> obj2 = CategoryList as Collection<object>;
[/Quote]
这样不行。还是会提示类型转换错误的问题。
amwggyy504 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hzzasdf 的回复:]
Collection<object> obj2 = CategoryList as Collection<object>;
[/Quote]
这样不行。还是会提示类型转换错误的总是。
  • 打赏
  • 举报
回复
Collection<object> obj2 = CategoryList as Collection<object>;
amwggyy504 2010-05-30
  • 打赏
  • 举报
回复
有没有人做过的??

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧