Пересечение двух массивов с заданным условием - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Есть 2 массива типа string. Нужно вернуть индексы элементов первого массива, в элементах которого содержатся элементы второго массива. Разумеется, прогонять двойной цикл не целесообразно. Думал в сторону Linq и регулярных выражений, но пока не смог ни к чему придти. Подскажите, в какую сторону двигаться

Решение задачи: «Пересечение двух массивов с заданным условием»

textual
Листинг программы
  1. static IEnumerable<int> FindIntersection(string[] left, string[] right, Func<string, string, bool> predicate) {
  2.     var result = new List<int>();
  3.     for (int i = 0; i < left.Length; i++) {
  4.         for (int j = 0; j < right.Length; j++) {
  5.             if (!result.Contains(i) && predicate(left[i], right[j])) {
  6.                 result.Add(i);
  7.             }
  8.         }
  9.     }
  10.  
  11.     return result;
  12. }
  13.  
  14. var a1 = new[] { "ab", "c", "b" };
  15. var a2 = new[] { "a", "b", "cc" };
  16. var result = FindIntersection(a1, a2, (l, r) => l.Contains(r));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.545 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы