Используйте валидацию Fluent, чтобы сравнить значения в массивеC#

Место общения программистов C#
Ответить
Anonymous
 Используйте валидацию Fluent, чтобы сравнить значения в массиве

Сообщение Anonymous »

У меня есть массив объектов, которые я получаю в теле HTTP. Выглядит примерно так: < /p>

Код: Выделить всё

{
load: {
stops: [
{
Name: "Stop 1",
AppointmentDateTime: "02/25/2025T14:00:00"
},
{
Name: "Stop 2",
AppointmentDateTime: "02/25/2025T13:00:00"
},
{
Name: "Stop 3",
AppointmentDateTime: "02/25/2025T15:30:00"
}
]
}
}
< /code>
У меня уже есть валидатор жидкости в C#, работая с некоторыми из следующих кодов: < /p>
RuleForEach(x => x.Stops).ChildRule(stop =>
{
stop.RuleFor(s => s.Name).NotEmpty().NotNull();
stop.RuleFor(s => s.AppointmentDateTime).NotEmpty().NotNull().Must(x => x > x.DateTime.Now).WithMessage("AppointmentDateTime must be in the future");
}
< /code>
Пока это работает, я хотел бы подтвердить, что элементы в массиве находятся за друг другу.  Stop 2 должен иметь время встречи после остановки 1 и остановки 3 после остановки 2 и т. Д. Я не могу найти способ в коде, чтобы сделать что -то вроде цикла, где я могу сохранить предыдущее значение элемента.  В идеале я собирался сделать что -то вроде: < /p>
Stop? prevStop = null;
foreach (stop in stops) {
if (!prevStop is null)
{
DO SOMETHING TO validate that prevStop.AppointmentDateTime > stop.AppointmentDateTime;
}
prevStop = stop;
}
Хотя есть способ тестирования элементов, я не вижу способа сохранить предыдущий элемент для сравнения с текущим.

Подробнее здесь: https://stackoverflow.com/questions/794 ... n-an-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»