大家好请教一下问题:
CategoryList的类型是Collection<Category>
但我这样赋值却有类型转换错误:Collection<object> obj2 = CategoryList,请问要怎么转换?谢谢。难道要写foreach转吗?
foreach (var temp in obj)
          {
            obj2 .Add(temp);
         }
有没有更好的办法的??

解决方案 »

  1.   

    Collection<object> obj2 = CategoryList as Collection<object>;
      

  2.   

    object obj2=Category;是装箱操作,引用泛型就是要避免这种情况。
    所以你应写成Collection<Category> obj2 = CategoryList;
      

  3.   

    因为我要转的参数就是Collection<object>型的,所以我传Collection<Category> 的时候就会报错了。
    第三方控件需要的是Collection<object>类型的参数。
      

  4.   

    Collection<object>和CollectIon<Category>根本就是没有关系的两个类型
      

  5.   

    貌似不能转换。只能自己复制
    Collection<Category> CategoryList=new Collection<Category>();
    Collection<object> obj2 = new Collection<object>();
    foreach (Category item in CategoryList) obj2.Add(item);
      

  6.   


    应该不行,可以试下能否将CategoryList转化为Collection<object>如果行,可直接赋值,否则不行
      

  7.   

    Collection<object> collection=new List<object>(CategoryList.ToArray())
      

  8.   

    嗯 ,这个思路可以,但这样转也会出错。我把它改成了: new Collection<object>(CategoryList.ToArray())。倒是可以用。但不知道这样做的效率会怎么样???
      

  9.   

    Collection<object> obj2 = CategoryList as Collection<object>;