CollectionAssert не удалось сделать точное соответствие - нужен лучший подход - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь сравнить два списка, используя CollectionAssert, но не удалось сравнить точное совпадение, а также не указывается, какое значение является неправильным

List<string> ExpectedList = new List<string>() { "apple","orange","grapes","mango"};
List<string> ActualList = new List<string>() { "gova","orange","GRAP"};
CollectionAssert.AreEqual(ExpectedList, ActualList)

Ожидаемые результаты должны быть в Строка :

"яблочная говядина, виноград, виноград, пустое манго"

Как я могу сделать это более эффективно или просто? Есть ли другое утверждение, доступное в C #?

1 Ответ

0 голосов
/ 29 октября 2018

Используйте Zip метод, подобный этому:

List<string> ExpectedList = new List<string>() {"apple", "orange", "grapes", "mango"};
List<string> ActualList = new List<string>() {"gova", "orange", "GRAP"};

var result = ExpectedList.Zip(ActualList, (first,second) => first != second ?
        $"Mismatch = {first} , {second}" :  "")
            .Concat(ExpectedList.Skip(ActualList.Count))
            .Concat(ActualList.Skip(ExpectedList.Count))
            .Where(c=>!string.IsNullOrWhiteSpace(c)).ToList();

А если вы хотите получить результат в виде строки:

string theStringVersion = string.Join(",", result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...