ArrayList list1 = new ArrayList();
            foreach (DataRow row in ds.Tables[0].Rows)
            {
                for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                {
                    list1.Add(row[i].ToString());
                }
            }            ArrayList list2 = new ArrayList();
            foreach (DataRow row in dss.Tables[0].Rows)
            {
                for (int i = 0; i < dss.Tables[0].Columns.Count; i++)
                {
                    list2.Add(row[i].ToString());
                }
            }            //ArrayList list3 = new ArrayList();
            //list3.AddRange(list2);
            ArrayList list3 = new ArrayList();
            for (int i = 0; i < list1.Count;i++)
            {
                for (int j = 0; j < list2.Count; j++)
                {
                    if (list1[i].Equals(list2[j]))
                    {
                        list3.Add(list2[j].ToString());
                        
                    }
                    
                }
            }
            list2.Remove(list3);

解决方案 »

  1.   

    .Equals()?不可以的
    除非你继承那个什么比较的类来重写Equals方法。忘了,可以在MSDN找找。
    我建议还是自己写个私有方法每个字段比较吧。。
      

  2.   

    Equals默认对比的是内存地址。
      

  3.   


    ArrayList array= new ArrayList();
      foreach (DataRow row in ds.Tables[0].Rows)
      {
      for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
      {
      if(!array.Contains(row[i].ToString()))
      array.Add(row[i].ToString());
      }
      }
      foreach (DataRow row in dss.Tables[0].Rows)
      {
      for (int i = 0; i < dss.Tables[0].Columns.Count; i++)
      {
      if(!array.Contains(row[i].ToString()))
      {
      array.Add(row[i].ToString());  }
      }
    }
      

  4.   

    Queue.Contains 用这个方法判断哈
      

  5.   

      建议可以把数据读出来放在DATATABLE中,然后转化为DATAVIEW ,就可以出去重复行列。参考:该方法只是为了一些只能在.net中去除重复行的操作,重复行,最好在SQL中实现。   
            /// <summary>
            /// 返回需要唯一的字段的DT
            /// </summary>
            /// <param name="dt">待操作的DT</param>
            /// <param name="PrimaryKeyColumns">需要保证唯一的字段(也是返回的DT中的字段)</param>
            /// <returns>返回数据唯一的DT</returns>
            public DataTable GetDistinctPrimaryKeyColumnTable(DataTable dt, string[] PrimaryKeyColumns)
            {
                DataView dv = dt.DefaultView;
                dv.RowFilter = "id <>"+_id ; //加过滤条件
                DataTable dtDistinct = dv.ToTable(true, PrimaryKeyColumns);
                return dtDistinct;
            }
            /// <summary>
            /// 冲突检查
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void btnConfictSelect_Click(object sender, EventArgs e)
            {
                DataSet ds = new DataSet();
                BLL.BaseCase basecase = new YingKe.BLL.BaseCase();
                string[] Clint = tbDelPerson.Text.Trim().Split(new char[] { ',', ',', '.', '、', ':', ':', '。', '|', '?', '?' });
                for (int j = 0; j < Client.Length; j++)
                {
                    DataSet c = basecase.GetchongwuPrivies(Clint[j]);
                    ds.Merge(c, true); //合并DS
                }
                string[] Pries = tbShakeerPerson.Text.Trim().Split(new char[] { ',', ',', '.', '、', ':', ':', '。', '|', '?', '?' });
                for (int j = 0; j < Privies.Length; j++)
                {
                    DataSet d = basecase.GetgwuPres(Pries[j]);
                    ds.Merge(d, true); //合并DS
                }
                DataTable dt = GetDistinctPrimaryKeyColumnTable(ds.Tables[0], new string[] { "ID", "yer", "Cnt", "Pries", "ModD", "BinTime", "CaeID", "CaName", "IsSte", "IsCct", "Islict", "Issh", "FiID" });            if (dt.Rows.Count != 0)
                {
                    this.Repeater1.DataSource = dt;
                    this.Repeater1.DataBind();
                    ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('在突!');</script>");
                }
                else
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript'>alert('好在冲突!');</script>");
                }
            }
      

  6.   

    linq很容易。但不知道你用的什么版本的vs。
      

  7.   

     是否包含。 。这里!array.Contains就是如果不包含这数据的话就放进去,包含就不放进去
      

  8.   

    要得到不重复的数据,使用set集合
      

  9.   

    不能直接把datarow加到ArrayList里面吗?
      

  10.   

    去查查克隆,还有ArrayList中的有没有判断是否存在的方法
      

  11.   

    看看数据里是否已经存在这样的数据?
    你试试contains这个方法吧
    我记得这好像是用来判断集合中是否包含其值!