• DataTable分组归类


    我们在做项目的时候,经常需要根据表或DataTable中某些字段来归类,为此就写出以下方法,帮组需要的人。

    #region 对DataTable进行分组 + public void GroupDataRows(IEnumerable<DataRow> source, List<DataTable> destination, string[] groupByFields, int fieldIndex, DataTable schema)
            /// <summary>
            /// 对DataTable进行分组
            /// </summary>
            /// <param name="source">要分组DataTable的Row集合</param>
            /// <param name="destination">分组之后的数据</param>
            /// <param name="groupByFields">分组字段</param>
            /// <param name="fieldIndex">字段索引(从什么字段开始)</param>
            /// <param name="schema">要分组DataTable</param>
            public void GroupDataRows(IEnumerable<DataRow> source, List<DataTable> destination, string[] groupByFields, int fieldIndex, DataTable schema)
            {
                if (fieldIndex >= groupByFields.Length || fieldIndex < 0)
                {
                    DataTable dt = schema.Clone();
                    foreach (DataRow row in source)
                    {
                        DataRow dr = dt.NewRow();
                        dr.ItemArray = row.ItemArray;
                        dt.Rows.Add(dr);
                    }
                    destination.Add(dt);
                    return;
                }
    
                var results = source.GroupBy(o => o[groupByFields[fieldIndex]]);
                foreach (var rows in results)
                {
                    GroupDataRows(rows, destination, groupByFields, fieldIndex + 1, schema);
                }
    
                fieldIndex++;
            }
            #endregion
    

      

    中山赢友网络科技有限公司(http://www.winu.net/)承接IOS、Android、Window Phone 8+、Window 10 App应用开发,IOS、Android、Window Phone 8+游戏开发,.NET/PHP软件系统开发,HTML5网站、游戏、微官网开发。欢迎致电:0760-88809987、18676265646 陈先生。
  • 相关阅读:
    jQuery 选择器
    Linux vs Window
    Git是什么?
    JS三大经典变量命名法
    常用html、CSS、javascript前端命名规范
    Ajax中Get请求与Post请求的区别
    HTTP 请求方式: GET和POST的比较
    poj2195 Going Home
    bzoj1059 [ZJOI2007]矩阵游戏
    bzoj1191 [HNOI2006]超级英雄Hero
  • 原文地址:https://www.cnblogs.com/wln3344/p/4409229.html
Copyright © 2020-2023  润新知