ArrayList里原来有一个类对象,我后来再Add一个新对象之后,再遍历ArrayList时,发现里面的两个类对象包含的数据都一样了,相当于第一个类对象被覆盖了,这是什么原因?public int AddSessionRest(DateTime WorkDate,float RestTime)
{
     ArrayList Al_Rest=new ArrayList();
     SessionRestInfo RestInfo=new SessionRestInfo();
     int Flag=-1;     //得到Sesseion中的内容
     Al_Rest=GetSession();
      for(int i=0;i<=Al_Rest.Count-1;i++)
     {
RestInfo=(SessionRestInfo)Al_Rest[i]; if(WorkDate.ToShortDateString()==RestInfo.WorkDate)
  {
      Flag=0;
      break;
  }
       }      if(Flag==-1)
      {
          RestInfo.RestID=Al_Rest.Count;
 RestInfo.WorkDate=WorkDate.ToShortDateString();
 RestInfo.RestTime=RestTime;
 Al_Rest.Add(RestInfo);
//保存Sesseion中的内容
SaveSession(Al_Rest);
Flag=1;
   }
   Return Flag;
}
请赐教。

解决方案 »

  1.   

    在循环中你没有new SessionRestInfo(),所以在循环加RestInfo对象时,RestInfo是同一对象,
    应改为:
    public int AddSessionRest(DateTime WorkDate,float RestTime)
    {
         ArrayList Al_Rest=new ArrayList();
         SessionRestInfo RestInfo;
         int Flag=-1;     //得到Sesseion中的内容
         Al_Rest=GetSession();
          for(int i=0;i<=Al_Rest.Count-1;i++)
         {
    RestInfo=(SessionRestInfo)Al_Rest[i]; if(WorkDate.ToShortDateString()==RestInfo.WorkDate)
      {
          Flag=0;
          break;
      }
           }      if(Flag==-1)
          {
              RestInfo=new SessionRestInfo();
              RestInfo.RestID=Al_Rest.Count;
     RestInfo.WorkDate=WorkDate.ToShortDateString();
     RestInfo.RestTime=RestTime;
     Al_Rest.Add(RestInfo);
    //保存Sesseion中的内容
    SaveSession(Al_Rest);
    Flag=1;
       }
       Return Flag;
    }
      

  2.   

    循环内加new SessionRestInfo()就可以了