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% быстрее.

Я делаю что-то неправильно?

Другие вопросы по тегам