比较2个列表,如果匹配,则更改1的状态
本文关键字:状态 2个 列表 如果 比较 | 更新日期: 2023-09-27 18:30:05
使用MVC,我有一个30个预订的列表,其中每个状态的默认值都设置为可用。
public class Day
{
public int dayNumber;
public Status status;
}
public enum Status
{
available,
booked,
closed
}
List<Day> ListOfBookings = new List<Day>();
for (int i = 1; i <= 30; i ++)
{
Day _day = new Day();
_day.dayNumber = i;
_day.status = Status.available;
ListOfBookings.Add(_day);
}
我想将它们与我的查询进行比较:
var bookingQuery = _foodPodAvailability.GetAll();
它得到表中所有实际预订的列表。我想使用此预订查询,如果预订了"日期",我想将ListOfBookings的状态更改为预订,当天
不确定这里的实际逻辑,我是否可以通过bookingQuery进行foreach,并在确定日期的地方加入?
如果您的bookingQuery列表包含具有dayNumber
属性的元素,我只会这样做:
foreach(var elm in bookingQuery)
ListOfBookings[elm.dayNumber - 1].status = Status.booked;
而且,你似乎想看看一个月中的哪些日子被预订了,所以你不应该得到所有的记录,只应该得到当月的记录。
作为替代方案,您也可以执行此
var bookingQuery = _foodPodAvailability.GetAll();
List<Day> ListOfBookings = new List<Day>();
for (int i = 1; i <= 30; i ++)
{
Day _day = new Day();
_day.dayNumber = i;
_day.status = bookingQuery.Where(w=>w.dayNumber == i).Any()?Status.booked:Status.available;
ListOfBookings.Add(_day);
}