Вставить переменную, содержащую строку, в качестве параметра нового списка c # - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть несколько списков, которые содержат данные.Мое намерение состоит в том, чтобы отображать определенные индексы этих списков при нажатии клавиш.Функциональность одинакова во всех списках ... "нажмите клавишу, получите данные".Я не хочу писать отдельные функции для каждого списка.Вместо этого я хочу просто установить переменную, равную «list1», «list2» и т. Д., А затем вставить эту строку переменной в

List<Sprite> newList = new List<Sprite>(controlVariable);

Итак, по сути, я ищу этот шаблон:

//...user input to set value of controlVariable (this functionality is not part of this question, i'm only interested in the variable stuff below)
string controlVariable = "list1";
List<Sprite> newList = new List<Sprite>(controlVariable);

Это позволило бы мне применить весь мой код, к которому когда-либо пытался работать со списком, без необходимости писать новый код для каждого типа списка.Но проблема, с которой я сталкиваюсь, состоит в том, что controlVariable - это строка, и она пытается вставить параметр, ожидающий другого типа.Я не знаю, как обойти это.Я уверен, что кто-то скажет мне использовать Reflection, но я просмотрел различные примеры в Интернете и не могу понять, как применить его к моему делу.Я новичок в C #.Может кто-нибудь помочь, пожалуйста?

1 Ответ

0 голосов
/ 23 сентября 2018

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

Словари, позволяющие извлекать объекты на основе заданного ключа.В вашем случае «ключи» - это строки («list1», «list2» и т. Д.), А связанные с ними объекты (также называемые «значениями») - это списки Sprite объектов.

// Creating a dictionary and adding a key to it
Dictionary<string, List<Sprite>> dict = new Dictionary<string, List<Sprite>>();
dict["list1"] = new List<Sprite>();
dict["list2"] = new List<Sprite>();

// Retrieving a list of sprites associated to "list1" from the dictionary
List<Sprite> mySprList = dict["list1"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...