Najszybszy sposób sprawdzenia, czy dwie listy <T> są równe

Mam dwie listy

ListA<Emp> iListB<Emp> obie mają 1000 rekordów.

Emp jest przedmiotem klasy pracowników. Poniżej jest mojaEmployee klasa

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;
}

Chcę sprawdzić, czy obie listy są równe. Obiekty Emp mogą być umieszczone w innej kolejności. Ponadto może istnieć kilka obiektów Emp, które mają dokładnie takie same informacje na obu listach. Muszę to również zweryfikować.

Próbowałem posortować listy i porównać jeSequenceEqual

Enumerable.SequenceEqual(ListA.OrderBy(s => s), ListB.OrderBy(s => s)

Dostaję się poniżej błędu

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)

Jak mogę to zaimplementować? Lepiej też będzie, jeśli możesz zapewnić mi najszybszy sposób, ponieważ liczba obiektów na liście może wzrosnąć do 10 milionów. Dzięki za pomoc !

EDYTOWAĆ: Każdy pracownik musi być na obu listach, kolejność nie ma znaczenia. Ale jeśli ListA zawiera ten sam obiekt pracownika 5 razy (co oznacza kilka zduplikowanych wpisów), a ListB zawiera obiekt pracownika 4 razy, to ListA i ListB nie są równe.

questionAnswers(6)

yourAnswerToTheQuestion