Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
117 / 118 / 52
Регистрация: 19.12.2014
Сообщений: 612

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

25.10.2015, 18:31. Показов 1025. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток.
Задача следующего типа, есть список файлов, к примеру их 7. В каждом файле могут быть совпадения с данными из другого файла. Дак вот нужно убрать эти совпадения из каждого файла, чтобы все файлы были оригинальными(без совпадений с данными из другого файла). Ну вот поломав целый день голову вроде бы что то придумал. Но все таки этот код не такой быстрый, и есть ли другие реализации?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Dictionary<int, string[]> mass = new Dictionary<int, string[]>();
            List<string> list_match = new List<string>();
for (int i = 0; i < 7; i++)
                {
                    int j = 0;
                    string[] textSplit = File.ReadAllLines(Application.StartupPath + @"" + @"\sol\match" + @"" + i.ToString() + @"" + j.ToString() + ".dat");//Считываем файл в массив строк
                    mass.Add(i, textSplit);//заносим его в список
                }
//Теперь в в mass храниться 7 массивов строк
                string[][] arr_double = mass.Values.ToArray();//Преобразуем все это в массив массивов
                for (int i = 0; i < arr_double.Length; i++)//Перебор уникальных ключей 
                {
 
                    StreamWriter NewFile1 = File.CreateText(Application.StartupPath + @"" + @"\ops" +i.ToString() + ".dat");//Всего при сохранении получиться 7 файлов(0,1,2,3,4,5,6)
                    int j = 0;//Будет индексом для перебора массивов
                    while (j < arr_double.Length)
                    {
                        if (j != i)//Теперь нам нужно исключить первый массив строк из общего списка массивов
                        {
                            list_match.AddRange(arr_double[j]);//добавляем строки в список, то есть в итоге сюда будут добавлены строки из 6 массивов
                        }
                        j++;
                    }
            
                    foreach (string str in arr_double[i])//Делаем перебор одного массива строк, который был исключен на этапе сравнения j!=i
                    {
                        
                        if (!list_match.Contains(str.Trim()))//Если строки нет в списке, то записываем ее в файл
                        {
                            NewFile1.WriteLine(str);
                        }
                    }
                    list_match.Clear();
                    NewFile1.Close();
                }
В итоге идея такова, что есть массив 0 и есть список данных из массивов остальных {1,2,3,4,5,6}. Проверяем уникальные значения и переходим к массиву 1 и список массивов уже будет {0,2,3,4,5,6} и т.д. Верно ли так или все таки есть какие другие реализации?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2015, 18:31
Ответы с готовыми решениями:

Исключить повторы из выборки в запросе
Здравствуйте, Подскажите, пожалуйста, нужно из выборки получить значение коэффициента, но в выборке эти коэффициенты могут...

Исключить из массива повторы значений
Задача такова: Помогите исправить функцию, делающая преобразования с массивом В, пожалуйста) #include &quot;stdafx.h&quot; ...

Нужно напутствие чтобы исключить повторы resultset в методе с sql запросом
здравствуйте. Есть запрос Sql, который выводит данные с трех таблиц. Проблема в том что когда читаю по данному алгоритму значения из...

1
27 / 55 / 19
Регистрация: 18.08.2014
Сообщений: 329
26.10.2015, 07:46
lokilo, есть технология LINQ. У неё есть функция Except возвращает элементы первой последовательности, которых нет во второй.

Вот и делай, берешь первый массив, except со 2,3,4,...100500
Затем 2 берем и Except с 3,4,...100500
И так пока массивы не кончатся
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2015, 07:46
Помогаю со студенческими работами здесь

Запрос в IBExpert (вывести данные без дублей и исключить повторы по коду)
Хочу написать запрос для таблицы. Таблица: КОД ИМЯ ФАМИЛИЯ КАРДКОД ...

Работа с массивами, написать тремя разными способами
В массиве b = b1,...,bn найти номера трёх последовательных элементов, значения которых удовлетворяют неравенству bi + bi+1 + bi+2 &gt; 0 ...

Исключить из строки слова, расположенные между скобками
Дана последовательность символов S1, …, SN. Группы символов, разделенные пробелом (одним или несколькими) и не содержащие пробелов внутри...

Исключить лишние пробелы между словами (комментарии)
Помогите пожалуйста разобраться в коде, писала не я, мало что тут понимаю, но мне нужны некоторые элементы этой задачи, чтобы решить свою:)...

Исключить теги и текст между специальными символами
Всем доброго времени суток! Мне нужно выбрать и заменить все слова, исключая теги и слова, исключая текст между ! и ! Не могу понять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru