@ArtemSh51

Как можно перебрать огромный массив, состоящий из более чем 10000 элементов с условием?

Эта программа сравнивает 1-ый массив со вторым. Если элемент 1-ого массива есть во втором массиве, то "+". В противном случае выводится "-"

using System;
using System.Linq;

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] array1 = { "Sunday", "Friday", "Thirsday", "Car", "Saturday" };
            string[] array2 = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thirsday", "Friday", "Saturday" };

            for (int i = 0; i < array2.Length; i++)
            {
                array2[i] = string.Join("", array2[i].ToUpper().Split());
            }

            for (int i = 0; i < array1.Length; i++)
            {
                if (array2.Contains(string.Join("", array1[i].ToUpper().Split())))
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("+");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("-");
                }
            }
        }
    }
}
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
1. Убери вот эту пакость:
string.Join("", array1[i].ToUpper().Split())
2. Переложи все данные в HashSet - тогда проверка наличия строки будет происходить за адекватное время.
У HashSet даже есть метод Intersect который возвращает true, если в двух наборах есть какие-то общие элементы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы