Задача: есть N элементов в строке. Разделитель — запятая. Надо пройтись по списку и удалить элементы, которые не подходят по условию. Использовать TStringDynArray.
Хотелось бы использовать TStringDynArray, потому что с ним просто удобно. Чтобы не заморачиваться с размерностью массива и обойти ситуацию, что изначальная строка — пустая, использовал такой код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | program TestDynArrayDeleteItem; {$APPTYPE CONSOLE} uses System.SysUtils, System.Types, System.StrUtils; var TmpArr: TStringDynArray; begin TmpArr := SplitString('1,2,3,4,5', ','); for var i := High(TmpArr) downto Low(TmpArr) do if TmpArr[i] = '3' then Delete(TmpArr, i, 1); Writeln(String.Join(',', TmpArr)); Readln; end. |
Работает быстро, для задачи быстрого изменения массива до нескольких десятков элементов — то, что надо.