Обработка строк в массиве
Суть моего вопроса в том, что после парсинга страницы и некоторой обработки у меня имеется массив строк, который выглядит примерно так (каждый переход на новую строку => другой элемент массива):
"prop1: foo1" "prop2:" "foo2" "foo2" "prop3: foo3"
И мне нужно сделать так, чтобы всё имело такой вид: "prop: foo". Задачу осложняет то, что мы не можем предугадать сколько строк нам нужно объединить для каждого свойства. Их может быть и 3, может и не быть вовсе.
И у меня в голове есть некая идея: если строка оканчивается на ':', то присоединяем к ней все последующие строки, но до тех пор пока не встретим строку, содержащую ':'.
- Как я понимаю тут необходимо 2 вложенных цикла, где 1 - будем обходить массив до тех пор, пока не встретит строку, оканчивающуюся на ':', а 2 - который будет обходить все элементы после, но до тех пор, пока не наткнётся на строку с ':'?
- И я правильно понимаю, что логичнее будет заменять ненужные нам элементы (уже конкатенированные) на
string.Empty, чтобы впоследствии легко отсеять их?
Просто в данный момент что-то толковое в голову не идёт
Достаточно одного цикла. Обрабатываете строки по очереди. Если в строке содержится ":" - запоминаете её индекс lastprop. Если в i-й строке снова встретили ":" - объединяете строки от lastprop до i-1, записываете lastprop = i. Аналогично после цикла.