如何为变量生成唯一名称?

时间:2015-06-23 22:05:11

标签: c#

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

Question qst1 = new Question(parameters)

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

这是我尝试过的,在temp中构建一个带有问题编号的字符串,并尝试使用{{1}声明名为Question0Question1等的变量}:

Question temp

但那不编译。有没有办法将string temp = "Question" + currentNumber.ToString(); currentNumber++; Question temp = new Question("parameter1","parameter2"); 中的字符串用作变量?

2 个答案:

答案 0 :(得分:5)

如果你不知道会有多少元素,你可以使用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
}

答案 1 :(得分:0)

使用数组

var questions = new Question[numquestion];
for (int i = 0 to numquestion)
{
   questions[i] = new Question(...);
}

现在你可以参考问题[n]