@Heppart

C#. Есть два массива, как сделать проверку данных на совпадение?

Здравствуйте!

Есть массив, содержащий ряд данных, например:
string[] array = { "Сайт №1", "Сайт №2", "Сайт №3" };

и 2-й массив, содержащий большее количество данных
string[] array = { "Сайт №1", "Сайт №2", "Сайт №3", "Сайт №4" };

Как произвести проверку на совпадение данных первого массива в данных второго массива ?
Спасибо!
  • Вопрос задан
  • 120 просмотров
Пригласить эксперта
Ответы на вопрос 5
firedragon
@firedragon
Senior .NET developer
Я вас не понял но держите, что то подойдет именно вам
array2.Except(array1)
array1.Except(array2)
array1.Intersect(array2) // видимо это
Ответ написан
wataru
@wataru
Вариант тупой - для каждого элемента первого массива пройтись циклом по второму массиву и сравнить.

Вариант по-умнее: Отсортировать оба массива, пройтись по ним двумя указателями параллельно (Если текущие элементы совпали - нашли совпадение и двигаем оба указателья, иначе двигаем указатиль на меньший элемент. Если один из массивов кончился - все).

Лучший вариант: Пройтись по меньшему массиву и сложить его элементы в HashSet<> (через Add()). Потом пройтись по второму массиву и каждый элемент проверить через метод Contains() у сета.
Ответ написан
bool isEqual = Enumerable.SequenceEqual(array1, array2);

если просто сравнить
Ответ написан
@yuopi
C# developer
string[] arr1 = {"a", "bb", "ccc", "zzzz"};
string[] arr2 = {"a", "b", "ccc", "dddd", "ee"};

var result = arr1.Join(arr2, s1 => s1, s2 => s2, (s1, s2) => s1);
Ответ написан
int []mas1;
int[]mas2;
for(int i=0;i<mas1.Lenght;i++){
for(int i2=0;i2<mas2.Lenght;i2++){
if(mas1[i]==mas2[i2]){
//Если данные совпали
}
}
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы