Пересечение двух массивов с заданным условием - C#
Формулировка задачи:
Добрый день!
Есть 2 массива типа string. Нужно вернуть индексы элементов первого массива, в элементах которого содержатся элементы второго массива.
Разумеется, прогонять двойной цикл не целесообразно.
Думал в сторону Linq и регулярных выражений, но пока не смог ни к чему придти.
Подскажите, в какую сторону двигаться
Решение задачи: «Пересечение двух массивов с заданным условием»
textual
Листинг программы
static IEnumerable<int> FindIntersection(string[] left, string[] right, Func<string, string, bool> predicate) { var result = new List<int>(); for (int i = 0; i < left.Length; i++) { for (int j = 0; j < right.Length; j++) { if (!result.Contains(i) && predicate(left[i], right[j])) { result.Add(i); } } } return result; } var a1 = new[] { "ab", "c", "b" }; var a2 = new[] { "a", "b", "cc" }; var result = FindIntersection(a1, a2, (l, r) => l.Contains(r));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д