Задать вопрос

Можно ли в Dictionary cделать так?

Всем привет ! (Простите если как то не так объяснил , только изучаю Dictionary ) Можно ли в Dictionary сделать так :
var dictionary = new new Dictionary<string, int>{
       {"Файл" ,  1 , File.png}  //   "имя ячейки" , "Стоимость"  , "Сам файл который пользователь получает при его покупки"
}

Возможно вы заметили , что я дописал File.png , это как раз мой вопрос . Можно ли добавить таким образом в ячейку еще один или два свойства (или как это называется) на данный момент мне известно , что можно сделать всего лишь 2 обозначения : "Название ячейки" , "какое то свойство ячейки " . Делаю игру и надо что бы пользователь переключал кнопками персонажей и при нажатие на кнопку менялась картинка , подписывалась (изменялась) стоимость , и если же игрок купил , то текстурка (в примере я написал File.png) будет изменяться на указанную . Данную информацию я рассказал просто чтобы вы знали для чего мне это и вдруг если вы не поняли чего мне нужно .
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 2
HemulGM
@HemulGM
Delphi Developer, сис. админ
Нет нельзя. Словарь - это Key, Value список. Если по ключу нужно хранить несколько значения, то создай, например, структуру и храни её как value.

public struct MyStruct
{
     public int ID;
     public string FIleName;
}

MyStruct myFile = new MyStruct();
myFile.ID = 1;
myFile.FileName = "File.png";

var dictionary = new Dictionary<string, MyStruct> {
"Файл1" ,  myFile
}
Ответ написан
Можно через новый тип
class Value {
    public int Id {get; set;}
    public string File {get;set;}
}
var dictionary = new Dictionary<string, Value> {
    ["asd"] = new Value { Id = 1, File = "File.png" }
}

Можно через кортежи (хз доступны ли они в юнити)
var dictionary = new Dictionary<string, (int Id, string File)> {
    ["asd"] = (1, "File.png")
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы