插入包含字符串的变量作为新列表C#的参数

时间:2018-09-23 14:14:49

标签: c# unity3d

我有几个包含数据的列表。我的意图是通过按键显示这些列表的某些索引。所有列表中的功能都相同...“按一下键,获取数据”。我不想为每个列表编写单独的函数。相反,我只想设置一个等于“ 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 :(得分:4)

也许List不适合您的情况使用。您是否尝试过使用Dictionaries

字典允许您根据给定的键检索对象。在您的情况下,“键”是字符串(“ 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"];