Что для вас означает равенство при сравнении списков?Вас волнует, что списки точно такие же .... одинаковые элементы в том же порядке?Или просто содержат один и тот же набор значений, независимо от порядка.
Если вы действительно хотите убедиться, что списки содержат одинаковую последовательность значений в одном и том же порядке, вы можете использовать метод SequenceEqual()
в LINQ:
bool areEqual = listA.SequenceEqual( listB );
Если списки не в том же порядке, вы можете сначала отсортировать их:
bool areEqual = listA.OrderBy(x=>x).SequenceEqual( listB.OrderBy(x=>x) );
Если списки могут содержать дубликаты, и дубликаты не имеют значения (с помощьюуважение к равенству), вы можете использовать сравнение множеств:
bool setEqual = new HashSet<int>( listA ).SetEquals( listB );
Если дубликаты не имеют значения, и вы заинтересованы в том, чтобы избежать затрат на сравнение (упорядочение, создание хэш-набора и т. д.), вы можетеСначала сравните размеры двух коллекций и сравните только, если они одинаковые.