Monday, November 5, 2012

Basic linq syntax group by on datatable



            DataTable dt = new DataTable();
            dt.Columns.Add("a", typeof(string));
            dt.Columns.Add("b", typeof(string));
            dt.Columns.Add("c", typeof(string));
            DataRow dr =  dt.NewRow();
            dr[0] = "a - row1";
            dr[1] = DBNull.Value;
            dr[2] = "c -row1";
            dt.Rows.Add(dr);
            dr = dt.NewRow();
            dr[0] = "a -row2";
            dr[1] = "b -row2";
            dr[2] = "c -row2";

            dt.Rows.Add(dr);

            var subjects = dt.AsEnumerable().GroupBy(row => new { a = row.Field<string>("a"),c=  row.Field<string>("c")}).Select(i => new { Subject = i.Key, Count = i.Count()}) ;
            foreach (var subject in subjects)
            {
                Response.Write(subject.Subject);
            }


results

{ a = a - row1, c = c -row1 }{ a = a -row2, c = c -row2 }
{ a = a - row1, b = , c = c -row1 }{ a = a -row2, b = b -row2, c = c -row2 }

No comments:

Post a Comment