Как вывести месяц с окончанием? (например: января, декабря)
У меня есть DTO - DayDto, объект выглядит вот так:
internal record CalendarDto(
List<DayDto> Days,
short Year,
List<HolidayDto> Holidays);
internal record DayDto(
DateTime? Day,
DateTime? From,
string Type,
string Holiday);
internal record HolidayDto(
int Id,
string Title);
Моя задача: отформатировать дни. Ожидаемый результат:
- Новогодние каникулы - 1, 2, 3, 4, 5, 6, 8 января
- Рождество Христово - 7 января
Обратите еще, пожалуйста, внимание на то, что я вставляю месяц только в конец перечисления дней. Вот такой код для форматирования я написал:
private IEnumerable<(string Title, string Date)> GetFormattedHolidays(CalendarDto calendarDto)
{
foreach(var holiday in calendarDto.Holidays)
{
var grouped = calendarDto.Days
.Where(dayDto => dayDto.Holidays == holiday.Id.ToString())
.GroupBy(dayDto => dayDto.Day.Value.Month)
.Select(group =>
$"{string.Join(", ", group.Select(dayDto => dayDto.Day?.Day))}"+
$"{_context.Culture.DateTimeFormat.GetMonthName(group.Key)}")
.ToArray();
yield return ($"{holiday.Title}", $"{grouped.JoinToString( ", " )}");
}
}
Проблема вся в том, что я получаю следующее:
- Новогодние каникулы - 1, 2, 3, 4, 5, 6, 8 январь
- Рождество Христово - 7 январь
Т.е окончание у месяца исчезает, как мне это исправить?
Источник: Stack Overflow на русском