Массив, используемый для инвентаря, например, «Яблоки» = 99 в C # - PullRequest
0 голосов
/ 10 января 2012

Я исследовал различные способы создания массивов и способы использования списков, но я не смог найти то, что искал. Я создал программу на python, которая делает то, что я хочу, но python режет много углов, и я хотел бы знать «правильный» и наиболее эффективный способ сделать это.

Я хочу создать массив (или список, не уверен, что для этого лучше), в котором есть строка типа «Зелье» и целое число для этого предмета, например, инвентарь для игры. Как лучше всего это реализовать?

Я заметил, что вы можете создавать массивы, такие как: Inventory.InvArray [] [] Но как сделать первый элемент строкой, а второй - целым?

Как видите, я немного растерялся, любая помощь приветствуется :)

Ответы [ 5 ]

6 голосов
/ 10 января 2012

Вы можете использовать Dictionary<string, int>.

Или вы можете создать объект Item с целочисленным InventoryCount свойством.

4 голосов
/ 10 января 2012

Вы ищете не массив или список, а словарь.

В .NET вы можете использовать общий словарьКласс , например

var inventory = new Dictionary<string, int>();
inventory["Apple"] = 99;

В Python вы должны использовать dict , например

inventory = dict()
inventory["Apple"] = 99
1 голос
/ 10 января 2012

Когда вы хотите создать карту пары «ключ-значение», как в вашем случае, используйте общий словарь.

var inventory = new Dictionary<string, int>();
inventory.Add("potion", 20);
inventory.Add("apple", 99);

Здесь тип строки для ваших ключей, в данном случае строка для зелий или яблок, а тип int для ваших значений, в данном случае количество.

0 голосов
/ 10 января 2012

Почему бы вам не использовать Dictionay<String, int>?

0 голосов
/ 10 января 2012

Похоже, вы ищете строго типизированный Dictionary<TKey, TValue>.Вы можете указать типы string и int, например:

Dictionary<string, int> YourCollection = new Dictionary<string, int> ();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...