Как сгруппировать данные по месяцам и посчитать строки, которые попадают под этот месяц - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь создать линейную диаграмму с использованием таблицы данных, которая содержит все данные, которые мне нужны, но я не могу сгруппировать их успешно.

Мне нужно сгруппировать данные по месяцу / годуи посчитать все записи, которые попадают в каждый соответствующий месяц / год.

Я действительно пытался извлечь данные и сделать график в Excel.Так это должно выглядеть следующим образом.

![enter image description here

Игнорировать кварталы, поскольку они автоматически генерируются Excel

Вот код:

var chartResults = (from myrow in chartInstruction.Chart.AsEnumerable()
                    group myrow by new
                    {
                        series = myrow.Field<string>(chartInstruction.Series),
                        xaxis = myrow.Field<DateTime>(chartInstruction.Xaxis).ToShortDateString() 
                    }
                into g
                    select new
                    {
                        Field = g.Key,
                        Total = g.Count()
                    }).ToArray();

string[] xAxis = chartResults.Select(x => x.Field.xaxis).Distinct().OrderBy(x => x).ToArray();
string[] series = chartResults.Select(x => x.Field.series).Distinct().OrderBy(x => x).ToArray();
var seriesInfo = new List<SeriesInfo>();
foreach (string s in series)
{
    var tmp = new List<double>();
    foreach (string xx in xAxis)
    {
        var found = chartResults.FirstOrDefault(x => x.Field.xaxis == xx && x.Field.series == s);
        tmp.Add(found?.Total ?? 0);
    }
    seriesInfo.Add(new SeriesInfo { Name = s, Series = tmp.ToArray() });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...