У меня есть список Part
, который содержит значение DateTime
, если они были зарегистрированы в моем Database
.Показать среднее число раз в час с помощью LINQ
Я хочу показать, сколько из них было зарегистрировано во время дневной смены в час и той же ночью.
Я попытался основать свою логику моего общего среднего для этих двух значение
@{
var shiftChangeTime = new TimeSpan(16, 0, 0);
<table>
<tr>
@*This is my general average*@
<td>Number of part/hour</td>
@{
var avg = Model.GroupBy(x => ((DateTime)x.ScanTime).TimeOfDay.Hours)
.Average(x => x.Count());
<td>@(Math.Round(avg, 2))</td>
}
</tr>
<tr>
@*This is my day average*@
<td>Number of part/hour</td>
@{
var avgDay = Model.GroupBy(x => ((DateTime)x.ScanTime).TimeOfDay < shiftChangeTime, y => ((DateTime)y.ScanTime).TimeOfDay.Hours)
.Average(x => x.Count());
<td>@(Math.Round(avgDay, 2))</td>
}
</tr>
<tr>
@*This is my night average*@
<td>Number of part/hour for night shift</td>
@{
var avgNight = Model.GroupBy(x => ((DateTime)x.ScanTime).TimeOfDay > shiftChangeTime, y => ((DateTime)y.ScanTime).TimeOfDay.Hours)
.Average(x => x.Count());
<td>@(Math.Round(avgNight, 2))</td>
}
</tr>
</table>
}
В настоящее время я застрял с логикой отделения дневной/ночной смены на час основе.
На данный момент он разделил мое общее число на две части.
Любая идея о том, как действовать?
Если я правильно понял ваш код «результат» должен содержать 2 значения, один из которых является средним значением дневной смены, а второй - средним значением ночной смены? Я обращаюсь к ним, выполняя 'result [" day "]/result [" night "]', правильно? – Chax
@Chax - вам нужно получить к нему доступ, как 'result [0]'. Если вы хотите получить доступ так, как вы написали, вместо «ToList' do' ToDictionary' –
Отлично! Благодарю. Я попробую это сразу и подтвержу, если это работает. – Chax