У меня есть два общих списка с 20 000 и 30 000 объектов в каждом списке.Как эффективно сравнить два отсортированных больших списка в C#?
class Employee
{
string name;
double salary;
}
List<Employee> newEmployeeList = List<Employee>() {....} // contains 20,000 objects
List<Employee> oldEmployeeList = List<Employee>() {....} // contains 30,000 objects
Списки также могут быть отсортированы по названию, если это улучшает скорость.
Я хочу сравнить эти два списка, чтобы узнать
- сотрудников, чьи имена и зарплаты соответствующие
- сотрудников, чьи имя не совпадает, но не зарплаты
Какой самый быстрый способ для сравнения такие большие списки данных с вышеуказанными условиями?
Вы можете использовать linq, он имеет небольшую стоимость исполнения, но опять же, поскольку @Jon сказал, это достаточно для вас или что еще вы пробовали? –
Откуда вы получаете данные? если вы заполняете свой список из SQL, вы можете сравнить его непосредственно с SQL, а не из списков. –
Поскольку они отсортированы, простой последовательный обход - это O (n), это слишком медленно? –