删除DataTable重复列,类似distinct


    #region 删除DataTable重复列,类似distinct
    /// <summary>   
    /// 删除DataTable重复列,类似distinct   
    /// </summary>   
    /// <param name="dt">DataTable</param>   
    /// <param name="Field">字段名</param>   
    /// <returns></returns>   
    public static DataTable DeleteSameRow(DataTable dt, string Field)
    {
        System.Collections.ArrayList indexList = new System.Collections.ArrayList();
        // 找出待删除的行索引   
        for (int i = 0; i < dt.Rows.Count – 1; i++)
        {
            if (!IsContain(indexList, i))
            {
                for (int j = i + 1; j < dt.Rows.Count; j++)
                {
                    if (dt.Rows[i][Field].ToString() == dt.Rows[j][Field].ToString())
                    {
                        indexList.Add(j);
                    }
                }
            }
        }
        indexList.Sort();
        // 排序
        for (int i = indexList.Count – 1; i >= 0; i–)// 根据待删除索引列表删除行  
        {
            int index = Convert.ToInt32(indexList[i]);
            dt.Rows.RemoveAt(index);
        }
        return dt;
    }

    /// <summary>   
    /// 判断数组中是否存在   
    /// </summary>   
    /// <param name="indexList">数组</param>   
    /// <param name="index">索引</param>   
    /// <returns></returns>   
    public static bool IsContain(System.Collections.ArrayList indexList, int index)
    {
        for (int i = 0; i < indexList.Count; i++)
        {
            int tempIndex = Convert.ToInt32(indexList[i]);
            if (tempIndex == index)
            {
                return true;
            }
        }
        return false;
    }
    #endregion

分享到:

4 条评论

:wink: :twisted: :roll: :oops: :evil: :?: :-| :-P :-D :) :( :!: 8)
昵称
  1. 最好的essay服务

    感谢楼主的分享,赞赞。

  2. hypo

    这个是……java么

  3. 优美散文摘抄

    优美散文摘抄www.shanjuetang.cn

  4. chian 程序员

    喜欢你的博客风格 :twisted: :twisted: :twisted: