protected string getPower(string powerItem)
    {
       
        string[] powerTxt = { "系统管理", "网站公告", "新闻管理", "图片管理", "每周一星", "友情链接" };
        string [] powerSplit;
        string txt;        powerSplit = powerItem.Split(';');
        txt = "";
               for (int i = 0; i < powerSplit.Length; i++)
        {
            if (int.Parse(powerSplit[i]) == 1)//这里会提示“输入字符串的格式不正确。”
            {
                txt += powerTxt[i] + ",";
            }
           
        }        return txt;
    }单独用int.Parse(powerSplit[i])可以显示的出来,并且不会出错,但是如果跟int.Parse(powerSplit[i])=1进行判断的话,就出现“输入字符串的格式不正确。”。其中powerItem传过来的数据都没错,都有数据。

解决方案 »

  1.   

    int.Parse(powerSplit[i])==1
    要这样才行少写了一个=号.
      

  2.   

    直接用这个试试
    powerSplit[i].ToString() == '1'
      

  3.   

    你多调试几次看看,因为这是一个数组,可能有某一个元素不能Parse。
      

  4.   

    问题出在 powerItem 。你传进去的这个powerItem是什么样的值,帖出来看看
      

  5.   


    原来就是 if (int.Parse(powerSplit[i]) == 1)
    这样的===============
    如果用powerSplit[i].ToString() == '1'的话,提示
    运算符“==”无法应用于“string”和“char”类型的操作数
      

  6.   

    这样说吧代码1:int i=2008;//把值赋给i,i的值为2008的整数代码2:int 1=2008
    if(i==2008)//用"=="就变成了条件判断语句了,其值是一个bool类型,也就是如果i等于2008就继续执行if语句,否则离开
    {
       i=i+1;
    }
      

  7.   


    要表示字符串应该用 “”,
    powerSplit[i].ToString() == ”1“
      

  8.   


    写了一大堆 发现误会LZ的意思了
    这个嘛
    用强制类型转换
    [c# code]
    Convert.ToInt32()[code]
      

  9.   


    那你调试的时候 powerSplit 里面的值是什么?
      

  10.   

     powerSplit = powerItem.Split(';');
    经过Split后,用powerSplit[0]
    powerSplit[1]
    powerSplit[2]
    powerSplit[3]
    powerSplit[4]
    powerSplit[5]
    都是有数据显示出来的,并且都是1