Объединить строки по первому совпадению

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Добрый день форум. Честно ломал голову все выходные но никак не могу решить небольшую задачу.
Я обрабатываю списки доменов и записываю их в List
Формат списка на выходе - такой

zayedport.abudhabi | ns1.etisalatdomains.ae
zayedport.abudhabi | ns2.etisalatdomains.ae
zayedport.abudhabi | ns3.etisalatdomains.ae
zia.abudhabi | ns1.etisalatdomains.ae
zia.abudhabi | ns2.etisalatdomains.ae
zia.abudhabi | ns3.etisalatdomains.ae
zia.abudhabi | ns4.etisalatdomains.ae
zmspm.abudhabi | ns1.etisalatdomains.ae
zmspm.abudhabi | ns2.etisalatdomains.ae
zonescorp.abudhabi | ns1.etisalatdomains.ae
zonescorp.abudhabi | ns2.etisalatdomains.ae
zonescorp.abudhabi | ns3.etisalatdomains.ae
zonescorp.abudhabi | ns4.etisalatdomains.ae
***********
Как можно обработать список чтобы на выходе получалось так?
************
zayedport.abudhabi | ns1.etisalatdomains.ae, ns2.etisalatdomains.ae, ns3.etisalatdomains.ae
zia.abudhabi | ns1.etisalatdomains.ae, ns2.etisalatdomains.ae, ns3.etisalatdomains.ae, ns4.etisalatdomains.ae
zmspm.abudhabi | ns1.etisalatdomains.ae, ns2.etisalatdomains.ae
и.т.д.
Списков 1495 (доменые зоны ICANN), поэтому решение нужно "кодом" (Шарп или Линк)
Спасибо.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
Добрый день форум. Честно ломал голову все выходные но никак не могу решить небольшую задачу.
Я обрабатываю списки доменов и записываю их в List
Формат списка на выходе - такой

zayedport.abudhabi | ns1.etisalatdomains.ae
zayedport.abudhabi | ns2.etisalatdomains.ae
zayedport.abudhabi | ns3.etisalatdomains.ae
zia.abudhabi | ns1.etisalatdomains.ae
zia.abudhabi | ns2.etisalatdomains.ae
zia.abudhabi | ns3.etisalatdomains.ae
zia.abudhabi | ns4.etisalatdomains.ae
zmspm.abudhabi | ns1.etisalatdomains.ae
zmspm.abudhabi | ns2.etisalatdomains.ae
zonescorp.abudhabi | ns1.etisalatdomains.ae
zonescorp.abudhabi | ns2.etisalatdomains.ae
zonescorp.abudhabi | ns3.etisalatdomains.ae
zonescorp.abudhabi | ns4.etisalatdomains.ae
***********
Как можно обработать список чтобы на выходе получалось так?
************
zayedport.abudhabi | ns1.etisalatdomains.ae, ns2.etisalatdomains.ae, ns3.etisalatdomains.ae
zia.abudhabi | ns1.etisalatdomains.ae, ns2.etisalatdomains.ae, ns3.etisalatdomains.ae, ns4.etisalatdomains.ae
zmspm.abudhabi | ns1.etisalatdomains.ae, ns2.etisalatdomains.ae
и.т.д.
Списков 1495 (доменые зоны ICANN), поэтому решение нужно "кодом" (Шарп или Линк)
Спасибо.
Задача не столь тяжела и для стандартного решения - штатными кубиками, поэтому решил привести пример такой обработки. Приложил проект.

На выходе, в Списке 3 получаем такие данные:

103084
 

Вложения

Последнее редактирование:
  • Спасибо
Реакции: DevOps

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Задача не столь тяжела и для стандартного решения - штатными кубиками, поэтому решил привести пример такой обработки. Приложил проект.
Понизьте до 7.4.0 пожалуйста
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 407
Благодарностей
9 116
Баллы
113
  • Спасибо
Реакции: DevOps

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Задача не столь тяжела и для стандартного решения - штатными кубиками, поэтому решил привести пример такой обработки. Приложил проект.

На выходе, в Списке 3 получаем такие данные:

Посмотреть вложение 103084
При попытке скачать шаблон :(
А все, скачал
Спасибо, попробую понять логику и воспроизвести в коде, у меня все в кубике C#
103087
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
1675776731975.png
C#:
var list = new List<string>(){
    "zayedport.abudhabi | ns1.etisalatdomains.ae",
"zayedport.abudhabi | ns2.etisalatdomains.ae",
"zayedport.abudhabi | ns3.etisalatdomains.ae",
"zia.abudhabi | ns1.etisalatdomains.ae",
"zia.abudhabi | ns2.etisalatdomains.ae",
"zia.abudhabi | ns3.etisalatdomains.ae",
"zia.abudhabi | ns4.etisalatdomains.ae",
"zmspm.abudhabi | ns1.etisalatdomains.ae",
"zmspm.abudhabi | ns2.etisalatdomains.ae",
"zonescorp.abudhabi | ns1.etisalatdomains.ae",
"zonescorp.abudhabi | ns3.etisalatdomains.ae",
"zonescorp.abudhabi | ns4.etisalatdomains.ae"
};
var list2 = new List<string>();
list.GroupBy(x => x.Split('|').First().Trim()).ToList()
    .ForEach(x => list2.Add(string.Join(" | ", new[]{ x.Key, string.Join(", ", x.Select(v => v.Split('|').Last().Trim())) })));
Console.WriteLine(string.Join("\n",list2));
 
  • Спасибо
Реакции: DevOps и Sergodjan

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Посмотреть вложение 103093
C#:
var list = new List<string>(){
    "zayedport.abudhabi | ns1.etisalatdomains.ae",
"zayedport.abudhabi | ns2.etisalatdomains.ae",
"zayedport.abudhabi | ns3.etisalatdomains.ae",
"zia.abudhabi | ns1.etisalatdomains.ae",
"zia.abudhabi | ns2.etisalatdomains.ae",
"zia.abudhabi | ns3.etisalatdomains.ae",
"zia.abudhabi | ns4.etisalatdomains.ae",
"zmspm.abudhabi | ns1.etisalatdomains.ae",
"zmspm.abudhabi | ns2.etisalatdomains.ae",
"zonescorp.abudhabi | ns1.etisalatdomains.ae",
"zonescorp.abudhabi | ns3.etisalatdomains.ae",
"zonescorp.abudhabi | ns4.etisalatdomains.ae"
};
var list2 = new List<string>();
list.GroupBy(x => x.Split('|').First().Trim()).ToList()
    .ForEach(x => list2.Add(string.Join(" | ", new[]{ x.Key, string.Join(", ", x.Select(v => v.Split('|').Last().Trim())) })));
Console.WriteLine(string.Join("\n",list2));
Большое спасибо, то что нужно !
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)