vb.net string.split против substring.lastindexof - что быстрее или "лучше"
У меня есть цикл, который читает много строк, каждая строка содержит информацию, разделенную символом (¥). Для этого цикла мне действительно нужно только конечное значение, индекс которого я знаю. Мне интересно, лучше ли использовать string.split или использовать substring.lastindexof.
Если это помогает, индекс для разделения составляет 8.
Который будет быстрее. Кроме того, мой выбор символа влияет на раскол? (¥ vs ` vs " например)
Благодарю.
1 ответ
Люди, кажется, склоняются к подстроке (lastindexof) над string.split - я просто сделал небольшой тест таймера, чтобы увидеть, что было быстрее.
For count As Integer = 0 To existing.Count - 1
If File.Exists(existing(count).Substring(existing(count).LastIndexOf("¥") + 1)) Then 'File.Exists(existing(count).Split(CChar("¥"))(8)) Then
outputfile.Add(existing(count))
Else
outputfile.Add(String.Empty)
End If
Next
Теперь строки в этом случае предназначены для информации тега mp3 и пути. Они обычно выглядят как
"Opeth¥ Апостол в триумфальном демо" ¥ Апостол в триумфальном демо часть 1¥1:41¥1¥1984¥ Прогрессивная смерть /Doom/Folk Metal¥¥C:\Users\black\Music\Opeth\ Апостол в триумфальном демо \Opeth - Апостол в триумфальной демо-части 1.mp3"
Таким образом, он проверяет, существует ли файл (либо с помощью existing(count).split(cchar("¥"))(8))
или же existing(count).Substring(existing(count).lastindexof("¥") + 1)
) через строки 8022, затем помещает значение в список.
Из 10 раз, когда я тестировал оба метода, метод разделения всегда был быстрее - в среднем на 32 милисекунды или на 2,27% быстрее.
Я делаю что-то неправильно?