Maneira mais rápida de verificar se duas List <T> são iguais
Eu tenho duas listas
ListA<Emp>
eListB<Emp>
ambos estão tendo 1000 registros.
Emp
é um objeto da classe Employee. Abaixo está minhaEmployee
classe
public class Employee
{
int ID = 0;
string Name = String.Empty;
string Dept = String.Empty;
string Address = String.Empty;
int Age = 0;
string Email = String.Empty;
}
Quero verificar se as duas listas são iguais. Os objetos Emp podem ser colocados em ordem diferente. Além disso, pode haver vários objetos Emp que estão tendo exatamente as mesmas informações na lista. Eu tenho que verificar isso também.
Eu tentei ordenar as listas e comparei usandoSequenceEqual
Enumerable.SequenceEqual(ListA.OrderBy(s => s), ListB.OrderBy(s => s)
Estou ficando abaixo do erro
At least one object must implement IComparable.
Exception Stack trace is as below
at System.Collections.Comparer.Compare(Object a, Object b)
at System.Collections.Generic.ObjectComparer`1.Compare(T x, T y)
at System.Linq.EnumerableSorter`2.CompareKeys(Int32 index1, Int32 index2)
at System.Linq.EnumerableSorter`1.QuickSort(Int32[] map, Int32 left, Int32 right)
at System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count)
at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
at System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1 first, IEnumerable`1 second, IEqualityComparer`1 comparer)
at System.Linq.Enumerable.SequenceEqual[TSource](IEnumerable`1 first, IEnumerable`1 second)
Como posso implementar isso? Também será melhor se vocês puderem me fornecer a maneira mais rápida de fazer isso, porque o número de objetos na Lista pode aumentar para 10 milhões. Obrigado pela ajuda !
EDITAR: Todos os funcionários devem estar em ambas as listas, a ordem não importa. Mas, se a ListA contiver o mesmo objeto de empregado 5 vezes (ou seja, algumas entradas duplicadas) e ListB contiver o objeto de empregado 4 vezes, ListA e ListB não serão iguais.