Ho due elenchi generici con 20.000 e 30.000 oggetti in ciascuna lista.Come confrontare due elenchi di grandi dimensioni in modo efficiente in 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
Le liste possono anche essere ordinate per nome se migliora la velocità.
voglio mettere a confronto queste due liste per scoprire
- dipendenti il cui nome e stipendio corrispondenza
- dipendenti il cui nome è corrispondenza, ma non di stipendio
Qual è il modo più veloce per confrontare elenchi di dati così grandi con condizioni sopra?
È possibile utilizzare linq, ha un piccolo costo in termini di prestazioni, ma ancora una volta come @Jon ha detto è sufficiente per te o cos'altro hai provato? –
Da dove prendi i tuoi dati? se stai compilando il tuo elenco da SQL, potresti volerlo confrontare direttamente da SQL e non dagli elenchi. –
Dato che sono ordinati, un semplice traversamento sequenziale è O (n), è troppo lento? –