Здравствуйте, Igorxz, Вы писали:
I>Здравствуйте, Passerby, Вы писали:
P>>Здравствуйте, Sinclair, Вы писали:
S>>>Здравствуйте, Passerby, Вы писали:
P>>>>По спецификации словаря так, действительно, делать нельзя. Но пока реализация словаря выполнена в виде структуры структур, то можно.
S>>>Этот набор слов непонятен. Реализация словаря выполнена в виде hash map, и у неё порядок элементов не совпадает с порядком добавления.
P>>Там деление блоков по хэшу начинается после какого-то (кажется 1000-го) элемента. У меня меньше.
P>>P>>Random rnd = new Random();
P>> int c1 = 10000, c2 = 50;
P>> Dictionary<string, int> dict = new Dictionary<string, int>(c2);
P>> for (int i = 0; i < c2; i++)
P>> {
P>> dict.Add(rnd.Next().ToString(), i);
P>> }
P>> { }
P>>
P>>Не нашел как добавить рисунок, который показывает сохранение порядка в этом коде.
I>это не важно. это просто спецэффект))) такой)))
I>хэш-таблица по своей сути не сортированна.
I>это ассоциативный массив, в которм адресация происходит с помощью операции свертики...
Что значит спецэффект? Объясните, почему заполнение списка идет в порядке заполнения словаря?
Random rnd = new Random();
int c1 = 10000, c2 = 50;
Dictionary<string, int> dict = new Dictionary<string, int>(c2);
for (int i = 0; i < c2; i++)
{
dict.Add(rnd.Next().ToString(), i);
}
List<(string, int)> lsi = new List<(string, int)>(c2);
foreach (var v in dict)
{
lsi.Add((v.Key, v.Value));
}
{ }