我需要根据情况动态创建一个List变量。
我有一个字符串列表。这些是动态创建的。
List Categories = [name: 'String 1', name: 'String 2', name: 'String 3']
我需要动态创建一个可以容纳每个字符串的List变量。不要问我为什么,但是请相信我。
我需要这样的东西:
for(int i = 0 ; i < Categories.length ; i ++)
{
// logic to create a variable of List type and even name it according to the value it is holding:
List String1Var = Categories.[i].name
// or even better :
List $Categories.[i].name = ....
}
因此String1Var必须命名为String1Var-即名称本身必须是动态的,内容也必须是动态的。
这可能会扑朔迷离吗?还是Google尚未提高其语言以使其适用于像我这样的人?
语法正确吗?如何动态创建变量名?
答案 0 :(得分:0)
Map
可以帮助您完成所需的工作。
我们不是生成单独的变量,而是生成动态keys
并将其存储在values
中,因为Dart没有动态变量的概念。
代码:
final Map myCategoryDynamic = {};
for(int i = 0 ; i < Categories.length ; i ++)
{
// logic to create a variable of List type and even name it according to the value it is holding:
myCategoryDynamic['String'+i.toString()+'Var'] = Categories.[i].name;
}
因此,当我们需要检查值时-可以通过-m yCategoryDynamic[String1Var] myCategoryDynamic[String2Var]
进行检查,依此类推...