Esempio n. 1
0
 public static void GroupDataRows(IEnumerable <DataRow> source, List <DataTable> destination, string[] groupByFields, int fieldIndex, DataTable schema)
 {
     if (fieldIndex >= groupByFields.Length || fieldIndex < 0)
     {
         DataTable dataTable = schema.Clone();
         foreach (DataRow dataRow in source)
         {
             DataRow row = dataTable.NewRow();
             row.ItemArray = dataRow.ItemArray;
             dataTable.Rows.Add(row);
         }
         destination.Add(dataTable);
     }
     else
     {
         foreach (IEnumerable <DataRow> source1 in source.GroupBy <DataRow, object>((Func <DataRow, object>)(o => o[groupByFields[fieldIndex]])))
         {
             LotteryCheck.GroupDataRows(source1, destination, groupByFields, fieldIndex + 1, schema);
         }
         ++fieldIndex;
     }
 }
Esempio n. 2
0
        public static void GroupDataRows(IEnumerable <DataRow> source, List <DataTable> destination, string[] groupByFields, int fieldIndex, DataTable schema)
        {
            if (fieldIndex >= groupByFields.Length || fieldIndex < 0)
            {
                DataTable dataTable = schema.Clone();
                foreach (DataRow current in source)
                {
                    DataRow dataRow = dataTable.NewRow();
                    dataRow.ItemArray = current.ItemArray;
                    dataTable.Rows.Add(dataRow);
                }
                destination.Add(dataTable);
                return;
            }
            IEnumerable <IGrouping <object, DataRow> > enumerable = from o in source
                                                                    group o by o[groupByFields[fieldIndex]];

            foreach (IGrouping <object, DataRow> current2 in enumerable)
            {
                LotteryCheck.GroupDataRows(current2, destination, groupByFields, fieldIndex + 1, schema);
            }
            fieldIndex++;
        }