C#中是否可以创建一个列表并从变量或类似名称中命名?
我们说我有一个包含10行的列表:
a,b,c,d,e,f,g,h,i,j
我可以从此列表中创建10个列表,每个列表都有一个名称,如行之一吗?
像
这样的东西List<string> myList = new List<string>();
foreach (var line in myList)
{
List<string> line = new List<string>();
}
我想要的是制作一些用于存储数据的列表,但在程序运行之前我不知道名称,因此需要动态生成这些名称。
答案 0 :(得分:6)
听起来你想要Dictionary
List<string>
s:
Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
foreach (var line in myList)
{
dict.Add(line, new List<string>());
}
现在,您可以根据我们用于密钥的原始字符串访问每个列表:
List<string> aList = dict["a"];
答案 1 :(得分:3)
您可以尝试这样的事情:
var newList = new Dictionary<string, List<string>>();
foreach (var line in myList)
{
newList.Add(line, new List<string>());
}
这将为您提供存储新数据的数据结构,并允许您根据第一个列表中的名称引用它们。
答案 2 :(得分:1)
您似乎想要Dictionary<String, List<String>>
这样:
var data = myList
.ToDictionary(line => line, line => new List<string>());
所以你可以
检查“变量”是否存在
if (data.ContainsKey("z")) {...}
地址“变量”
data["a"].Add("some value");
添加“变量”
data.Add("z", new List<string>());