当然有问题了
你的代码
foreach(long userid in userids)
{
if (userid.Equals(userId))
 exist=true;
else
 exist=false;
}
相当于
数组的最后一个数字的比较

解决方案 »

  1.   

    有没有错要结合上下文才好说呀,不过可以稍稍优化一下
    public bool UserAlreadyExit(long userId)
    {
    long []userids=getalluserid(ticket);
    bool  exist = true;
    foreach(long userid in userids)
    {
    if (userid.Equals(userId))
                                         {
        exist=true;
                                             break;
                                         }
    else
     exist=false;
    }
    return  exist;      }
      

  2.   

    那正确的呢?麻烦写出来,foreach不是这么用吗?
      

  3.   

    刚才漏了个break不好意思,我想问的是为什么  编译不通过:: 使用了未赋值的局部变量“exist”
    怎么回事???
      

  4.   

    //语句之前应该有初始值
    bool exist=false;
    ...
    if (userid.Equals(userId))
                                         {
        exist=true;
                                             break;
                                         }
    else
     exist=false;
      

  5.   

    你的代码里没有给exist赋初值,做为返回值的变量都要有明确的赋值,循环或者条件判断语句里赋值不算。
      

  6.   

    如果 userids 为空呢, foreach(long userid in userids)
    {
    if (userid.Equals(userId))
     exist=true;
    else
     exist=false;
    }
    就不会执行