У меня есть несколько списков, содержащих данные. Я намерен отображать определенные индексы этих списков с помощью нажатия клавиш. Функциональность одинакова для всех списков ... «нажмите клавишу, получите данные». Я не хочу писать отдельные функции для каждого списка. Вместо этого я хочу просто установить переменную, равную «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 ответ
Может быть, List не подходит для вашего случая. Вы пробовали использовать Словари?
Словари позволяют получать объекты на основе заданного ключа. В вашем случае «ключи» - это строки («список1», «список2» и т. Д.), А связанные с ними объекты (также известные как «значения») - это списки объектов 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"];
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.