Итак, я работал на Python и недавно переключился на C #. Я пытался воссоздать один из моих проектов на Python в C #, и я немного застрял в словарях. В части кода Python я создал несколько словарей с двумя ключами в каждом и добавил все словари в список:
slot0 = {"itemID": 0, "amount": 0}
slot1 = {"itemID": 0, "amount": 0}
slot2 = {"itemID": 0, "amount": 0}
inv = [slot0, slot1, slot2]
Затем, позже, я перебрал список словарей и смог легко изменить значения клавиш itemID
и amount
:
for slot in inv:
if slot["item"] == 0:
slot["item"] = 2
slot["amount"] += 1
break
Однако в C # это не так просто. Я успешно создал словари и добавил их в список:
Dictionary<string, int> slot0 = new Dictionary<string, int>() { { "itemID", 0 }, { "amount", 0 } };
Dictionary<string, int> slot1 = new Dictionary<string, int>() { { "itemID", 0 }, { "amount", 0 } };
Dictionary<string, int> slot2 = new Dictionary<string, int>() { { "itemID", 0 }, { "amount", 0 } };
List<Dictionary<string, int>> inv = new List<Dictionary<string, int>>();
private void Start()
{
inv.Add(slot0);
inv.Add(slot1);
inv.Add(slot2);
}
Но я не уверен, как повторить цикл for
из кода Python. Я знаю, что foreach
это вещь, и что я могу использовать ее с KeyValuePairs, но я почти уверен, что вы не можете изменить значения нескольких ключей с ним. Если бы кто-нибудь мог помочь, это было бы здорово. Извините, если мой вопрос не был слишком ясным; Я был бы более чем рад уточнить.