如何为变量生成唯一名称

本文关键字:唯一 变量 | 更新日期: 2023-09-27 17:59:11

我有自己的类Question。我的代码必须能够随意从这个类创建新对象,比如:

Question qst1 = new Question(parameters)

但我不知道我应该创造多少。那么,我如何为新问题生成唯一的名称,并生成具有该名称的问题?

这就是我所尝试的,用temp中的问题号构建一个字符串,并尝试使用Question temp:声明一个名为Question0Question1等的变量

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]