У меня есть два списка, которые содержат цены на отели из разных источников, однако я хочу объединить эти два списка и создать окончательный список, который будет включать только самые дешевые результаты между этими двумя?Может кто-нибудь сказать мне, что будет лучшим способом достичь этого?Я думал использовать перекрестное соединение, однако я чувствую, что это займет много времени вычислений.
Коллекция отелей:
using System;
using System.Collections.Generic;
namespace ConsoleApp1
{
public class Program
{
static List<hotel> vendor1Hotels = new List<hotel>{new hotel
{
room = new Room
{
roomId = 2,
totalPrice = 200
},
hotelId = 2,
vendorId = 1
} };
static List<hotel> vendor2Hotels = new List<hotel>{new hotel
{
room = new Room
{
roomId = 2,
totalPrice = 300
},
hotelId = 2,
vendorId = 2
} };
static List<hotel> Hotels { get; set; } = new List<hotel>();
static void Main(string[] args)
{
foreach (var hotel1 in vendor1Hotels)
{
foreach (var hotel2 in vendor2Hotels)
{
if(hotel1.hotelId == hotel2.hotelId)
{
if(hotel1.room.totalPrice < hotel2.room.totalPrice)
{
Hotels.Add(hotel1);
}else
{
Hotels.Add(hotel2);
}
}
}
}
}
}
public class hotel
{
public Room room { get; set; }
public int vendorId { get; set; }
public int hotelId { get; set; }
}
public class Room
{
public int roomId { get; set; }
public double totalPrice { get; set; }
}
}
выше будет добавлена к выходной коллекции Отели
Я хочу сравнить свойство totalprice класса номерав каждом отдельном отеле из коллекций Vendor1Hotels и Vendor2Hotels , если идентификатор отеля равен и добавьте его в Hotels , иначе сравнивать не нужно, нужно просто добавить, чтоОтель до итоговой коллекции Отели .