using System.Data.DataSetExtensions;
public static void Main()
var dataRows = dt.AsEnumerable();
public static void Works(EnumerableRowCollection<DataRow> dataRows)
var grouped = dataRows.GroupBy(
Group = g.CopyToDataTable()
foreach(var g in grouped)
Console.WriteLine("Name:" + g.Key.Name);
for(var i = 0; i < g.Group.Rows.Count; ++i)
Console.WriteLine(g.Group.Rows[i]["StartDate"]);
Console.WriteLine("===");
public static void Fails(EnumerableRowCollection<DataRow> dataRows)
var grouped = dataRows.GroupBy(
Group = g.CopyToDataTable()
foreach(var g in grouped)
Console.WriteLine("Name:" + g.Key.Name);
for(var i = 0; i < g.Group.Rows.Count; ++i)
Console.WriteLine(g.Group.Rows[i]["StartDate"]);
Console.WriteLine("===");
public static DataTable GetData()
DataTable dt = new DataTable();
dt.Columns.Add("StartDate");
dt.Columns.Add("EndDate");
for (var i = 0; i < 10; ++i)
row["StartDate"] = DateTime.Now;
row["EndDate"] = DateTime.Now;
public object Name { get; set; }