Stack + C#有点新鲜,抱歉,如果这个问题有不熟悉的措辞。
我正在尝试创建一个程序,该程序将以行分隔的纯文本输入。 如果该行是特定关键字(在本例中为“group”),它将创建一个新的List。在else语句中,它会将文本分配给列表,直到读者到达另一个“组”。
如何通过我的else语句添加分组[0]和分组[1] ...等? 我得到的当前错误是“对象引用未设置为对象的实例”。我假设我对“n”变量做错了,但我不确定是什么。
while ((line = Console.ReadLine()) != null) {
List<String>[] grouping = new List<String>[20];
int count = 0;
int n = 0;
if (line == "group"){
n++;
grouping[n] = new List<String>();
}
else {
grouping[n].Add(line);
}}
TLDR:我做错了什么?
答案 0 :(得分:1)
您应该将索引器n
和数组声明移出循环,以便在每次迭代后保留值。基于c#的索引也是0。所以从索引0而不是1为数组赋值。
int n = -1;
List<string>[] grouping = new List<string>[20];
while ((line = Console.ReadLine()) != null)
{
if (line == "group"){
n++;
grouping[n] = new List<string>();
}
else
{
grouping[n].Add(line);
}
}