Я получаю сообщение об ошибке, что datetime не содержит метода max или min. Я пытаюсь получить максимальную и минимальную дату встречи и посмотреть, равны ли они, а затем установить для MeetingDate минимальную дату и время. Если они не равны, я объединю min StartDate и max StartDate вместе. ниже показано, как должен выглядеть результат, и я получаю сообщение об ошибке: datetime не содержит метода max или min.
class Program
{
static void Main(string[] args)
{
List<MeetingModel> Meeting = new List<MeetingModel>();
Meeting.Add(new MeetingModel() { MeetingId = 1, startTime = new DateTime(2017, 1, 18) });
Meeting.Add(new MeetingModel() { MeetingId = 1, startTime = new DateTime(2017, 1, 19) });
Meeting.Add(new MeetingModel() { MeetingId = 2, startTime = new DateTime(2017, 1, 22) });
Meeting.Add(new MeetingModel() { MeetingId = 2, startTime = new DateTime(2017, 1, 22) });
Meeting.Add(new MeetingModel() { MeetingId = 3, startTime = new DateTime(2017, 1, 23) });
Meeting.Add(new MeetingModel() { MeetingId = 3, startTime = new DateTime(2017, 1, 23) });
Meeting.Add(new MeetingModel() { MeetingId = 4, startTime = new DateTime(2017, 1, 25) });
Meeting.Add(new MeetingModel() { MeetingId = 4, startTime = new DateTime(2017, 1, 29) });
var result = Meeting
.Select (p=> new MeetingViewModel
{
MeetingId = p.MeetingId,
MeetingDate = p.startTime.Max() == p.startTime.Min() ? p.startTime.Min().ToString("MM/dd/yyyy") :
string.Format("{0: MM/dd/yyyy} - {1: MM/dd/yyyy}", p.startTime.Min(), p.startTime.Max()
}).ToList();
foreach (var meeting in result)
{
Console.WriteLine("{0}", meeting.MeetingId);
Console.WriteLine("{0}", meeting.MeetingDate);
}
}
class MeetingModel
{
public int MeetingId { get; set; }
public DateTime startTime { get; set; }
}
class MeetingViewModel
{
public int MeetingId { get; set; }
public string MeetingDate { get; set; }
}
}
Ошибка
Код серьезности Описание Ошибка состояния подавления строки файла проекта Ошибка состояния CS1929 DateTime не содержит определения для Max, а для лучшей перегрузки метода расширения Enumerable.Max (IEnumerable) требуется получатель типа IEnumerable
введите описание изображения здесь
Выход
Meeting 1 2017/1/18 - 2017/1/19
Meeting 2 2017/1/22
Meeting 3 2017/1/23
Meeting 4 2017/1/25 - 2017/1/29
EF
select new Model.Meeting
{
MeetingId = m.MeetingId,
GroupId = m.GroupId,
MeetingDate = m.Min(x => x.startTime) == m.Max(x => x.startTime) ?
m.Max(x => x.startTime).ToString("MM/dd/yyyy") :
string.Format("{0: MM/dd/yyyy} - {1: MM/dd/yyyy}",
md.Min(x => x.startTime), md.Max(x => x.startTime))
}).GroupBy(x => x.MeetingId).ToList();