Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 18.10.2020
Сообщений: 1

Дан двумерный ступенчатый string массив из которого надо записать уникальные значения в один одномерный массив

18.10.2020, 16:14. Показов 1570. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
пример:
C#
1
2
3
4
5
            List<List<string>> accounts = new List<List<string>>();
            accounts.Add(new List<string> { "Andrew", "and@bk.ru", "Anan@gmail.com", "azaza@bk.ru" });//arrays[0]
            accounts.Add(new List<string> { "Andrew", "Anan@gmail.com", "kitkat@ya.ru", "Ilove@gmail.com"});//arrays[1]
 
            string[][] arrays = accounts.Select(a => a.ToArray()).ToArray();
Нужно получить вот такой массив: arrays[] { "Andrew", "and@bk.ru", "Anan@gmail.com", "azaza@bk.ru", "kitkat@ya.ru", "Ilove@gmail.com" }

В примере показано что встречается одинаковая почта 2 раз Anan@gmail.com которую нужно записать как один раз!
помогите пожалуйста))))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2020, 16:14
Ответы с готовыми решениями:

Составить новый массив B(2,k) в первую строку которого записать сумму отрицательных элементов каждого столбца...
Поставлю свечку в церкви за всех кто поможет

Дан двумерный массив. Сформировать одномерный массив, каждый элемент которого равен количеству элементов строки, больших данного числа
1)Дан двумерный массив размерностью 4х6, заполненный целыми числами, введенными с клавиатуры. Сформировать одномерный массив, каждый...

Дан двумерный массив размером nxn, заполненный числами. Все отрицательные элементы записать в одномерный массив
Помогите с решением: Дан двумерный массив размером nxn, заполненный целыми числами. Все его отрицательные элементы записать в...

3
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,231
18.10.2020, 17:01
Лучший ответ Сообщение было отмечено Zifir как решение

Решение

Воспользуйтесь группировкой:
C#
1
2
3
4
5
6
7
8
List<List<string>> accounts = new List<List<string>>
            {
                new List<string> {"Andrew", "and@bk.ru", "Anan@gmail.com", "azaza@bk.ru"},
                new List<string> {"Andrew", "Anan@gmail.com", "kitkat@ya.ru", "Ilove@gmail.com"}
            };
 
            var results = accounts.SelectMany(x => x).GroupBy(x => x).Select(x => x.Key).ToList();
            results.ForEach(Console.WriteLine);
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16132 / 11256 / 2888
Регистрация: 21.04.2018
Сообщений: 33,092
Записей в блоге: 2
18.10.2020, 22:40
Zifir, такая операция относится к методам работы со множествами.
Для данной задачи будет лучше если вместо List будет использоваться HashSet.
Но LINQ тоже поддерживает операции над множествами, просто работает несколько медленнее:
C#
1
var arrays = accounts[0].Union(accounts[1]);
Если в accounts больше двух списков, то можно их собрать через аккумулирование.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16132 / 11256 / 2888
Регистрация: 21.04.2018
Сообщений: 33,092
Записей в блоге: 2
19.10.2020, 10:35
Zifir, пример с аккумулированием - количество вложенных списков может быть любым:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            List<List<string>> accounts = new List<List<string>>
            {
                new List<string> {"Andrew", "and@bk.ru", "Anan@gmail.com", "azaza@bk.ru"},
                new List<string> {"Andrew", "Anan@gmail.com", "kitkat@ya.ru", "Ilove@gmail.com"},
                new List<string> { "azaza@bk.ru", "kitkat@ya.ru", "AndrewRu", "Ilove_gmail.com"}
            };
 
            var result = accounts
 
                // Аккумулирование всех списков в одну последовательность.
                .Aggregate(Enumerable.Empty<string>(), (аccumulate, list) => аccumulate.Concat(list))
 
                // Оставить в последовательности только уникальные.
                .Distinct()
 
                // Преобразовать последовательность в список - если надо.
                .ToList();
Добавлено через 3 минуты
Или сразу получать множество:
C#
8
9
10
11
12
13
14
            var result = accounts
 
                // Аккумулирование всех списков в одно множество.
                .Aggregate(Enumerable.Empty<string>(), (аccumulate, list) => аccumulate.Union(list))
 
                // Преобразовать последовательность в список - если надо.
                .ToList();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.10.2020, 10:35
Помогаю со студенческими работами здесь

Дан одномерный массив вещественных чисел. Создать два текстовых файла. В один из них записать значения элементов, в дру
Дан одномерный массив вещественных чисел. Создать два текстовых файла. В один из них записать значения элементов, в другой их адреса. ...

Дан двумерный массив А, значения элементов которого задаются формулой
Дано двумерный массив А значение элементов которого задаются формулой. Вывести таблицу на экран. Aij=3tg(i+j), Где i,j=1..5 ...

Дан двумерный массив, из него сделать одномерный. В одномерный массив сначала вписат четные строки потом нечетные
Здравствуйте,собственно задача в заголовке темы. никак не получается все это дело слит в одномерный массив,подскажите плз, как...

Дан двумерный массив, сделать из него одномерный из среднего значения строк исходного массива
дан двумерный массив, сделать из него одномерный из среднего значения строк исходного массива. двумерный массив заполняется рандомными...

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив.
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
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