У меня есть два списка
ListA<Emp>
и ListB<Emp>
оба имеют 1000 записей.
Emp
является объектом класса Employee. Ниже представлен мой класс Employee
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;
}
Я хочу проверить, равны ли оба списка. Объекты Emp могут быть размещены в другом порядке. Кроме того, может существовать несколько объектов Emp, которые имеют точно такую же информацию в обоих списках. Я также должен проверить их.
Я попытался отсортировать списки и сравнить с помощью SequenceEqual
Enumerable.SequenceEqual(ListA.OrderBy(s => s), ListB.OrderBy(s => s)
Я становлюсь ниже ошибки
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)
Как я могу это реализовать? Также будет лучше, если вы, ребята, можете предоставить мне самый быстрый способ сделать это, потому что количество объектов в списке может вырасти до 10 миллионов. Спасибо за вашу помощь!
EDIT: Каждый сотрудник должен быть в обоих списках, порядок не имеет значения. Но если ListA содержит один и тот же объект-работник 5 раз (это означает несколько дубликатов записей), а ListB содержит объект employee 4 раза, то ListA и ListB не равны.