Здрасьти, а это снова я, человек-devlog

Вернувшись из странствий, я снова пишу тебе письмо о моем шикарном, а может и нет, ну или все таки да, крутом проекте. Сегодня пойдет речь о рефакторингах и переосмыслениях смыслов.

Здрасьти, а это снова я, человек-devlog
55 показов
765765 открытий

немного не понял почему для инвентаря Dictionary не подошел, и зачем в них хранить структуру айтемов? если можно хранить только id и количество
private Dictionary<string, int> _iventory = new Dictionary<sting,int>();

void Add(string id, int count){
if(_iventory.ContainsKey(id)){
_iventory[id] += count;
}else{
_iventory.Add(id, count);
}
}

Ответить
Автор

Основная проблема как я писал в статье, это то, что Dictionary это таблица хешей. Когда ты будешь выбрасывать и подбирать предмет, он не будет вставать в конец. К примеру когда у тебя инвентарь
[0] = Bluprint
[1] = Oxygen
[2] = Food

И ты выбросишь [1]
у тебя как бы будет
[0] = Oxygen
[1] = Food

Но когда ты поднимешь blueprint, то он снова будет на той же позиции как до выброса
[0] = Bluprint
[1] = Oxygen
[2] = Food

А мне нужно что бы предмет отправлялся в конец
[0] = Oxygen
[1] = Food
[2] = Bluprint

В Dictionary на сколько Я знаю, может я упустил какое то обновление или еще что то, но я не знаю возможности добавления гибкости как в листе или массиве без бубнов.

А структура это своего рода замена ключу и значению.

Ответить