У меня есть неотсортированный список строк. Я могу поместить эти объекты в массив, Список, SortedList, безотносительно.
Я должен найти самый быстрый способ искать строку в этом списке. Действительно ли я - более обеспеченный дамп список в массив, сортируя его, затем реализовывая двоичный поиск? Или платформа позволяет делать это?
Спасибо
P.S. Используя VS2008 против.NET 2.0
Если ваша цель - просто сделать это очень быстро, чтобы найти строки в коллекции, положить их в HashSet .
hashset.tainsains - это метод O (1), и строки имеют хороший хеш-алгоритм по умолчанию, поэтому будет трудно сделать более быструю рутину, чем это.
Редактировать:
, поскольку вы используете .NET 2, я бы просто сделал словарь
и используйте одну и ту же строку для ключа и значения. Dictinoary
также является o (1), и будет намного быстрее, чем любой попытку поиска на основе списков.
Если вам нужно только найти Один объект, один раз, просто начать в начале и посмотреть на каждого, пока не найдешь его. Если вам нужно будет повторить эту работу, несколько раз найдя в тот же список, чтобы найти разные элементы, то сортировать его сохранить сортированный список и сделать двоичный поиск ...
Я не уверен, будет ли это любое использование для вас, но это будет довольно простой способ сделать это, не уверен на точной «скорости» этого.
List<string> collection = new List<string>();
collection.Sort();
foreach(string value in collection)
{
if(value == "stringToLookFor")
{
return value;
}
{