Обращение через индекс Dictionary или IndexOf, что быстрее / производительнее? - C#
Формулировка задачи:
Смотрите есть строка:
мне приходит символ (или есть второй вариант, изначально dic разбить на список Dictionary<char, int>, короче так:
этот collection будет сохранен как свойство, т.е. на надо будет каждый раз повторять эту "конвертацию".
а потом просто:
как будет быстрее и производительнее?
Работы будет много, по этому это важно.
string dic = "abcdefghijklmnopqrstuvwxyz";
char
) и мне надо выяснить положение этого символа в строке, у меня есть 2 варианта, первое искать при помощиIndexOf
:int pos = dic.IndexOf(MyChar);
Dictionary<char, int> collection = new Dictionary<char, int>(); for (int i = 0; i < dic.Length; i++) collection.Add(dic[i], i);
int pos = collection[MyChar];
PS
я может туплю, просто в последнее время занимался РНР, а там есть способ так обращаться и оно работает быстрее чем поиск по массиву, вот и спрашиваю.// проверка присутствует ли в массиве значение if ( isset($array['page1']) ) { // .... }
вроде как когда я через индекс обращаюсь, там все равно поиск осуществляется перебором.
Решение задачи: «Обращение через индекс Dictionary или IndexOf, что быстрее / производительнее?»
textual
Листинг программы
static string GetNew(string Old, string dic = "0123456789") // 0123456789abcdefghijklmnopqrstuvwxyz { char[] temp = Old.ToCharArray(); for (int i = temp.Length - 1; i >= 0; i--) { if (temp[i] == dic[dic.Length - 1]) { temp[i] = dic[0]; continue; } else { int now = dic.IndexOf(temp[i]); temp[i] = dic[now + 1]; break; } } return new string(temp); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д