在for循环(C#)中声明动态变量

在for循环(C#)中声明动态变量,c#,C#,我有一个任务,当我在控制台中键入示例2时,我应该解析接下来的两行字符串。我给大家举一个明确的例子: 2 J 1 1 1 1 B 0 0 0 1 因此,当我执行这样的for循环时,当我编写控制台时,它只显示第二个蛇怪(B001): stringbasilisk; int basilisk1D=0; int basilisk2D=0; int basilisk3D=0; int basilisk4D=0; string basilisname=string.Empty; for(int i=0;i

我有一个任务,当我在控制台中键入示例2时,我应该解析接下来的两行字符串。我给大家举一个明确的例子:

2
J 1 1 1 1
B 0 0 0 1
因此,当我执行这样的for循环时,当我编写控制台时,它只显示第二个蛇怪(B001):

stringbasilisk;
int basilisk1D=0;
int basilisk2D=0;
int basilisk3D=0;
int basilisk4D=0;
string basilisname=string.Empty;
for(int i=0;i

它删除了第一行,只把第二个蛇怪的数据放进去,这样我就可以把变量的名字放进for循环,使它们对每个蛇怪都是唯一的,或者有更好的解决方案?

你不能把八个整数和两个字符串放进四个
int
变量和一个
string
变量中。您需要将结果存储在某种集合中

首先,创建一个类来存储行数据:

class Basilisk {
    public string Name {get;set;}
    public string Num1 {get;set;}
    public string Num2 {get;set;}
    public string Num3 {get;set;}
    public string Num4 {get;set;}
}
因为您马上就知道需要多少行,所以可以使用数组:

var basilisks = new Basilisk[numberOfBasilisks];
for (int i = 0; i < numberOfBasilisks; i++) {
    basilisks[i] = new Basilisk();
    var str = Console.ReadLine();
    var splittedBasilisk = str.Split(' ');
    basilisks[i].Name = splittedBasilisk[0];
    basilisks[i].Num1 = int.Parse(splittedBasilisk[1]);
    basilisks[i].Num2 = int.Parse(splittedBasilisk[2]);
    basilisks[i].Num3 = int.Parse(splittedBasilisk[3]);
    basilisks[i].Num4 = int.Parse(splittedBasilisk[4]);               
}
var basilisks=新Basilisk[numberOfBasilisks];
for(int i=0;i
您还可以使用集合,这取决于您是否已在课程作业中使用列表

var basilisks = new Basilisk[numberOfBasilisks];
for (int i = 0; i < numberOfBasilisks; i++) {
    basilisks[i] = new Basilisk();
    var str = Console.ReadLine();
    var splittedBasilisk = str.Split(' ');
    basilisks[i].Name = splittedBasilisk[0];
    basilisks[i].Num1 = int.Parse(splittedBasilisk[1]);
    basilisks[i].Num2 = int.Parse(splittedBasilisk[2]);
    basilisks[i].Num3 = int.Parse(splittedBasilisk[3]);
    basilisks[i].Num4 = int.Parse(splittedBasilisk[4]);               
}