Привет Я рассматриваю лучший способ обновления одной коллекции на основе другой коллекции.Обновите одну коллекцию, основанную на другом значении коллекции
Сначала система соответствует пользователю как полностью доступная, а затем получает доступность из системы для обновления коллекции. Первая коллекция нуждается в обновлении со значениями из второй коллекции. Это работает, но медленно.
var currentDate = DateTime.Now;
// setup as fully available
var listAvailabilityNotBooked = new List<Availability>();
for (int i = -2; i < 10; i++)
{
listAvailabilityNotBooked.Add(new Availability
{
Month = currentDate.AddMonths(i).Month,
Year = currentDate.AddMonths(i).Year,
Percentage = 0
});
}
// match booked up from system
var availability = _availabilityRepository.GetAll();
foreach (Availability notBooked in listAvailabilityNotBooked)
{
// not booked becomes booked if match in system
notBooked.Percentage =
availability.Where(i => i.Month == notBooked.Month && i.Year == notBooked.Year)
.Select(i => i.Percentage).FirstOrDefault();
}
var availabilityDetail = new AvailabilityDetail
{
Availability = listAvailabilityNotBooked,
EmailEnquiryForm = new EmailEnquiryForm()
};
Я переработан в:
- это необходимо для поиска как на месяц и
- года по-прежнему медленно на нескольких данных добавить месяц и где пункт
var currentDate = DateTime.Now;
// match booked up from system
IQueryable<Availability> availability = _availabilityRepository.GetAll();
// setup as fully available
List<Availability> availabilityBooked = new List<Availability>();
for (int i = -2; i < 10; i++)
{
var month = currentDate.AddMonths(i).Month;
var year = currentDate.AddMonths(i).Year;
availabilityBooked.Add(new Availability
{
Month = month,
Year = year,
Percentage = availability.Where(a => a.Month == month && a.Year == year)
.Select(a => a.Percentage).FirstOrDefault()
});
}
Совету, рекомендуется использовать фактическое имя типа, а не «var» (например, "var listAvailabilityNotBooked = новый Список <Доступность>();" должен быть «Список <Доступность> listAvailabilityNotBooked = новый Список <Доступность>();". На всякий случай вы получите множество переменных с разными типами, но схожими именами^_^ – Rariolu
Мне нужно показать за два месяца до текущей даты и в будущем доступность - если в системе не нужно использовать процент по умолчанию 0% – matt
@Rariolu: Кто сказал, что это хорошая практика? На самом деле многие считают «вар» хорошей практикой и гораздо более удобочитаемыми. На самом деле это всего лишь вопрос личного предпочтения и стиля кодирования. –