如何为变量生成唯一名称
本文关键字:唯一 变量 | 更新日期: 2023-09-27 17:59:11
我有自己的类Question
。我的代码必须能够随意从这个类创建新对象,比如:
Question qst1 = new Question(parameters)
但我不知道我应该创造多少。那么,我如何为新问题生成唯一的名称,并生成具有该名称的问题?
这就是我所尝试的,用temp
中的问题号构建一个字符串,并尝试使用Question temp
:声明一个名为Question0
、Question1
等的变量
string temp = "Question" + currentNumber.ToString();
currentNumber++;
Question temp = new Question("parameter1","parameter2");
但这并不能编译。有没有办法将temp
中的字符串用作变量?
如果你不知道会有多少元素,你可以使用List<T>
:
var questions = new List<Question>();
var question = new Question(parameters);
questions.Add(question);
question = new Question(parameters2);
questions.Add(question);
然后,您可以通过直接访问或循环访问列表中的问题:
var questionTouse = questions[0];
// or
foreach (var q in questions)
{
// do something with q
}
另一种选择是,如果你想通过你分配的字符串键来查找问题,你可以使用Dictionary<string, Question>()
:
var questions = new Dictionary<string, Question>();
var question = new Question(parameters);
questions["Question1"] = question;
question = new Question(parameters2);
questions["Question2"] = question;
然后,为了从字典中取出项目,你可以用添加它们的键来引用它们,或者再次循环:
var questionTouse = questions["Question1"];
// or
foreach (var q in questions)
{
// do something with q
}
使用数组
var questions = new Question[numquestion];
for (int i = 0 to numquestion)
{
questions[i] = new Question(...);
}
现在您可以参考问题[n]