2013-04-26 5 views
0

Я использую Visual Basic.net.Строка Вставить на определенную строку

Если у меня есть строка, в которой есть много строк, можно ли вставить строку в определенную строку? Я вижу, что для строк есть функция вставки. Есть ли функция для вставки строки в определенную строку другой строки?

ответ

1

Строки понятия не имеют, что такое «линия». Строка - это только последовательность символов. Вы можете преобразовать строку в список отдельных строк (например, List<string>), а затем вставить в этот список.

List<string> listOfLines = new List<string>(); 
listOfLines.AddRange(sourceString.Split(new String[] { Environment.NewLine }, StringSplitOptions.None)); 

listOfLines.Insert(13, "I'm new here"); 

string result = String.Join(Environment.NewLine, listOfLines); 

Это код на C#, но я уверен, что вы можете легко преобразовать его в VB.NET.

+0

Пожалуйста, смотрите ответ Тима Schmelter для в Visual Basic версии моего ответа :-) –

+0

Fixed это, спасибо! –

2

Есть функция, чтобы вставить строку в определенную строку другой строки ?

Нет, потому что строка не является списком/массивом строк. Вы должны разбить его на Environment.NewLine, чтобы получить массив, ToList, чтобы получить List(Of String), у которого есть Insert method. Затем вы можете использовать String.Join, чтобы положить его вместе после того, как вы вставили его:

Dim lines = MultiLineText.Split({Environment.NewLine}, StringSplitOptions.None).ToList() 
lines.Insert(2, "test") ' will throw an ArgumentOutOfRangeException if there are less than 2 lines ' 
Dim result = String.Join(Environment.NewLine, lines) 
0

Там нет строковых метод, которые обрабатывают строку как коллекции строк. Вы можете использовать метод Insert, но вам нужно выяснить, где в строке поставить линию самостоятельно.

Пример:

' Where to insert 
Dim line As Integer = 4 
' What to insert 
Dim content As String = "asdf" 

' Locate the start of the line 
Dim pos As Integer = 0 
Dim breakLen As Integer = Environment.Newline.Length 
For i As Integer = 0 to line 
    pos = text.IndexOf(Environment.Newline, pos + breakLen) 
Next 

' Insert the line 
text = text.Insert(pos, content + Environment.Newline) 
Смежные вопросы