Мне трудно объединить несколько строк в текстовом файле с разделителями-запятыми, если первое поле совпадает. Это мой файл:
Area 1 Chiller Grids aB aN and a1 a6,test,1,Ground Floor Framing
Area 1 Chiller Grids aB aN and a1 a6,test,2,Monorails West
Area 1 Chiller Grids aB aN and a1 a6,test,6,Roof Framing West
Area 1 Chiller Grids aB aN and a1 a6,test,11,Bullnose West
Area 2 Office Grids aN zA and a1 a6,101806,3,First Floor Framing East
Area 2 Office Grids aN zA and a1 a6,101806,5,Mezz Floor Framing
Area 2 Office Grids aN zA and a1 a6,101806,7,Roof Framing East
Area 2 Office Grids aN zA and a1 a6,101806,9,First Floor Ceiling
Area 3 Bridge Grids yA yE and a1 10x,101807,4,Link Floor Framing
Area 3 Bridge Grids yA yE and a1 10x,101807,8,Link Roof Framing
Area 3 Bridge Grids yA yE and a1 10x,101807,10,Bridge Catwalks
Area 3 Bridge Grids yA yE and a1 10x,101807,13,Stair 1
Мне нужно, чтобы вывод был таким:
Area 1 Chiller Grids aB aN and a1 a6,test,1-2-6-11,Ground Floor Framing-Monorails West-Roof Framing West-Bullnose West
Area 2 Office Grids aN zA and a1 a6,101806,3-5-7-9,First Floor Framing East-Mezz Floor Framing-Roof Framing East-First Floor Ceiling
Area 3 Bridge Grids yA yE and a1 10x,101807,4-8-10-13,Link Floor Framing-Link Roof Framing-Bridge Catwalks-Stair 1
Как я могу это сделать?
Я попробовал какой-нибудь linq-код, который нашел здесь, но он не совсем получил то, что я хочу, и я не уверен, как заставить его это сделать:
var a = System.IO.File.ReadAllLines(@"X:\Steelcad_Project_Files\" + dir + "\\manager1.txt");
var b = System.IO.File.ReadAllLines(@"X:\Steelcad_Project_Files\" + dir + "\\manager.txt");
var query =
from bline in b
let parts = bline.Split(',')
group parts[2] by parts[0] into bg
join aline in a on bg.Key equals aline
select aline + "," + string.Join("-", bg.ToArray());
System.IO.File.WriteAllLines(@"X:\Steelcad_Project_Files\" + dir + "\\result.txt", query.ToArray());
Если файл manager1 содержит только первое поле, например:
Area 1 Chiller Grids aB aN and a1 a6
Area 2 Office Grids aN zA and a1 a6
Area 3 Bridge Grids yA yE and a1 10x
Я хотел бы, если возможно, использовать только 1 файл.
Любая помощь приветствуется. Спасибо
РЕДАКТИРОВАТЬ: можно ли отсортировать строки на основе строки 0, а затем строки 2? Если это был 1-11-15-2-6, можно ли переставить его на 1-2-6-11-15, но сохранить все Зоны 1 вместе и т. Д.?