Tengo dos listas genéricas con 20,000 y 30,000 objetos en cada lista.¿Cómo se pueden comparar dos listas grandes ordenadas de manera eficiente en 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
Las listas también pueden ordenarse por nombre si mejora la velocidad.
quiero comparar estas dos listas para averiguar
- empleados cuyo nombre y salario de referencia
- empleados cuyo nombre se emparejan pero no salariales
¿Cuál es la manera más rápida para comparar tales grandes listas de datos con las condiciones anteriores?
Puede usar linq, tiene un pequeño costo de rendimiento pero, una vez más, como @Jon dijo, ¿esto es suficiente para usted o qué más ha intentado? –
¿De dónde obtienes tus datos? Si está completando su lista de SQL, es posible que desee compararla directamente desde SQL y no desde las listas. –
Dado que están clasificados, un recorrido secuencial simple es O (n), ¿es demasiado lento? –