2011-12-14 6 views
1

Допустим, я следующий код:сравнить два одинаковых списка строк

List<string> numbers = new List<string> { "1", "2" }; 
    List<string> numbers2 = new List<string> { "1", "2"}; 

    if (numbers.Equals(numbers2)) 
    { 

    } 

Как вы можете видеть, у меня есть два списка с одинаковыми деталями. Есть ли способ проверить, равны ли эти два списка, используя один метод?

РЕШЕНИЕ:

Использование SequenceEqual()

Благодаря

+1

См. Http://stackoverflow.com/questions/1546925/comparing-two-liststring-for-equality – dash

+0

Можно ли считать позицию позиции позиции shoudl? – sll

+0

@ Озкан, если у вас были дубликаты? например 'numbers: {1, 1, 2}' и 'numbers2: {1, 2}' Вы считаете, что они равны? –

ответ

2
// if order does not matter 
bool theSame = numbers.Except(numbers2).Count() == 0; 

// if order is matter 
var set = new HashSet<string>(numbers); 
set.SymmetricExceptWith(numbers2); 
bool theSame = set.Count == 0; 
+2

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

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