2017-02-16 7 views
-1

Учитывая два списка ниже, что лучше всего сравнивать?Какой самый эффективный способ сравнить содержимое двух списков?

var a = new List<string>() { "2016", "2017" }; 
var b = new List<string>() { "2017", "2018" }; 
+0

Являются ли списки заказанными? Эффективность памяти или эффективность работы? (Или и то, и другое? Что важнее?) Нужно ли вам знать, являются ли они разными, или полный список различий? –

+2

Какой результат сравнения вам нужен/нужен? –

+0

@OriNachum независимо от заказа, эффективности работы, мне нужно знать, если они разные. Спасибо :) –

ответ

0

Для независимого сравнения заказа:

bool result = a.Count == b.Count && a.Intersect(b).Count() == a.Count; 
+1

Прямо из документов: «Метод« SetEquals »игнорирует повторяющиеся записи и порядок элементов в другом параметре». Поэтому вам нужно понять, действуют ли эти правила для OP. Кажется, что порядок не проблема, но дубликаты могут быть (облегчены хэш-наборами, не допускающими дубликатов, возможно). –

+0

@AdamHouldsworth «независимо от порядка» заставлял меня думать, что они не заказаны. – Slai

+1

Я знаю, я так прокомментировал - я просто добавляю больше информации к ответу, что одна строка кода. –

0

Это работало для меня (но списки должны быть упорядочены и различны):

a.SequenceEqual(b) 

Спасибо ребята за усилия! :)

+0

Если списки упорядочены и различны, вы должны указать это в вопросе. Поэтому вместо того, чтобы публиковать этот тривиальный ответ, лучше удалить весь пост. –

+0

@IvanStoev указан в комментариях ... :) –

+0

@ AndréLuisTosatodaCruz, Вы сказали «независимо от порядка», что означает, что они не упорядочены, а отличительные не упоминались. ({1,1}! = {1}) –

 Смежные вопросы

  • Нет связанных вопросов^_^