У меня есть этот код, который отлично работает, но медленный на больших наборах данных.может ли мой код улучшить использование LINQ?
Я бы хотел услышать от экспертов, может ли этот код воспользоваться Linq или другим методом, и если да, то каким образом?
Dim array_of_strings As String()
' now I add strings to my array, these come from external file(s).
' This does not take long
' Throughout the execution of my program, I need to validate millions
' of other strings.
Dim search_string As String
Dim indx As Integer
' So we get million of situation like this, where I need to find out
' where in the array I can find a duplicate of this exact string
search_string = "the_string_search_for"
indx = array_of_strings.ToList().IndexOf(search_string)
Каждая из строк в моем массиве уникальна, без дубликатов.
Это работает очень хорошо, но, как я уже сказал, слишком медленно для больших наборов данных. Я выполняю этот запрос миллионы раз. В настоящее время на миллион запросов требуется около 1 минуты, но это слишком медленно для меня.
Почему вы вызываете 'ToList()'? Вы должны иметь возможность просто делать 'indx = array_of_strings.IndexOf (search_string)'. –
В любом случае, если вы хотите увидеть, где ваш код медленный, получите достойный профилировщик и измерьте его. Linq не предназначен для повышения производительности, он призван повысить производительность, сокращая количество циклов, необходимых для кодирования. –
создание временного списка «миллионы раз» - может быть, это должен быть список? – Plutonix