我的开发环境:win2003+VS.net2003代码如下:

public ArrayList mList = new ArrayList();int i = 1;ArrayList message = new ArrayList();
message.Add("Get");
message.Add(i); try
{
    mList = (ArrayList) message[1];//这行提示出错,错误提示为“指定的转换无效”
}
catch(Exception e)
{
    MessageBox.Show(e.Message);
}
我应该怎样进行类型转换呢?希望大家看看,帮帮忙,非常感谢

解决方案 »

  1.   

     mList = (ArrayList) message[1] 改成mList = (ArrayList) message
      

  2.   

    楼上正解,不过我感觉没必要转型啊 message 本身就是arraylist 类型的
      

  3.   

    message[1]是object(int),ArrayList是message本身。
    另外,建议你不要往列表里添加不同类型的东西~
      

  4.   

    不错才怪了
    message[1];//是什么啊?
    ArrayList message = new ArrayList(); 
    message.Add("Get"); 
    message.Add(i); //是int型的i
      

  5.   

    try 

        mValue= (int) message[1]; 

    catch(Exception e) 

        MessageBox.Show(e.Message); 
      

  6.   


    就是因为这样才强制类型转换的。如果不是,直接这样 mList = message 就好了,不必 mList = (ArrayList) message
      

  7.   

    message 是 ArrayList类型的对象
    message[1] 是 message 集合中的第二个对象,在这里它是一个int型,当然语法上它是object,所以应该该这样强转(int) message[1]
    (ArrayList) message[1],把一个int型转换成ArrayList 当然会报错了
      

  8.   


    你到底需要什么样的结果。如果是想取message中的每一项可以用
    mList.add(message[i]);
      

  9.   

    ArrayList message = new ArrayList(); 
    message.Add("Get"); //字符串型
    message.Add(i); //int型
    你觉得编译器会自动转换而不报错?
      

  10.   

    public ArrayList mList = new ArrayList(); int i = 1; ArrayList message = new ArrayList(); 
    message.Add("Get"); 
    message.Add(i); try 

        mList.Add(message[1]);//这行提示出错,错误提示为“指定的转换无效” 

    catch(Exception e) 

        MessageBox.Show(e.Message); 

      

  11.   

    mList = (ArrayList) message[1];//这行提示出错,错误提示为“指定的转换无效” mList是集合,message是集合,message[1]是你觉得这是什么东西啊,能赋给mList吗? 
    上面的人都在胡扯!再强制转换也转换不过来,就像输入一个字符,非要转换成数字一样