Запрос Linq с группой

RowNum IMAGEID SCANEDATE COUNT 1 10000131 2012-07-04 00:00:00.000 1 2 10002626 2012-08-03 00:00:00.000 1 3 10003348 2012-09-06 00:00:00.000 1 4 10003589 2012-09-15 00:00:00.000 8 5 10003590 2012-05-15 00:00:00.000 8 6 10003591 2012-04-15 00:00:00.000 8 7 10003592 2012-03-15 00:00:00.000 8 8 10003595 2012-02-15 00:00:00.000 8 9 10003596 2012-09-15 00:00:00.000 8 10 10003598 2012-09-15 00:00:00.000 8 11 10003599 2012-09-15 00:00:00.000 8 

У меня есть над datatable, на котором мне нужно применить запрос linq для получения результата следующим образом

1) Все идентификаторы изображений, имеющие одну и ту же дату, должны быть указаны в одной ячейке (, разделены), а в столбце счетчика должно быть указано количество соответствующих дат каждой даты. идентификаторов изображений

  Scan Date Image ID Count 11/27/2007 1001529,1001530,1001531,1001532,1001533,1001534,1001537,1001538,1001539,1001540,1001542 11 11/20/2008 1002501,1002502,1002503,1002504,1002505,1002506,1002507,1002508,1002509,1002510,1002511,1002512,1002513,1002514,1002515,1002516,1002517,1002518,1002519,1002520, 20 7/5/2011 1015237,1015238 2 7/6/2011 1015248,1015249,1015259,1015260,1015286,1015287,1015288,1015289,1015290,1015291,1015292,1015293,1015294,1015295,1015296,1015297,1015347,1015348,1015358,1015359, 32 1015370,1015371,1015381,1015382,1015396,1015397,1015410,1015411,1015412,1015413,1015429,1015430 7/7/2011 1015444,1015445 2 

Пожалуйста, предоставьте мне запрос на выполнение вышеуказанного.

Группировать таблицы по полю SCANEDATE. Затем проецируйте каждую группу строк, выбирая дату проверки (ключ группы), объединяя все идентификаторы изображений в строку и получая количество строк в группе:

 table.AsEnumerable() .GroupBy(r => r.Field<DateTime>("SCANEDATE")) .Select(g => new { ScanDate = g.Key, Ids = String.Join(",", g.Select(r => r.Field<int>("IIMAGEID"))), Count = g.Count() }); 
 var results = from p in tabel group p.IMAGEID by p.SCANEDATE into g select new { SCANEDATE = g.Key, IMAGEID = g.ToList() }; 

Или как выражение без запроса:

 var results = tabel.GroupBy(p => p.SCANEDATE , p => p.IMAGEID , (key, g) => new { SCANEDATE = key, IMAGEID = g.ToList() }); 

В основном содержимое группы (когда представление как IEnumerable<T> ) представляет собой последовательность любых значений в проекции (p.car в этом случае), присутствующих для данного ключа.