我发起了一个空阵列。
string[] line = new string[] { };
我想存储下面将使用while循环在cmd处理中输出的每一行。如果我将值存储在字符串变量中,这似乎很容易。
如下图所示:
while (!proc.StandardOutput.EndOfStream)
{
line = proc.StandardOutput.ReadLine();
}
但是,我不确定如何将值存储为数组中的单独元素。我试过了:
while (!proc.StandardOutput.EndOfStream)
{
for(a in line)
{
a = proc.StandardOutput.ReadLine();
}
}
但它不起作用。
这可能是一个非常基本的问题。但我还在学习C#。
答案 0 :(得分:5)
解决方案很少。一种方法是使用List<string>
代替string[]
:
List<string> line = new List<string>();
然后再添加一行:
while (!proc.StandardOutput.EndOfStream)
{
line.Add(proc.StandardOutput.ReadLine());
}
答案 1 :(得分:1)
数组在索引的基础上工作。因此,如果你想使用一个数组,你需要指定它需要多长时间,换句话说,它可以包含多少项:
// this array can store 100 items
string[] line = new string[100];
要访问某个位置,您需要使用[ ]
operator并在数组中向前移动,您需要一个类型为int
的索引变量,您可以增加每次迭代
int indexer = 0;
while (!proc.StandardOutput.EndOfStream)
{
line[indexer] = proc.StandardOutput.ReadLine();
indexer ++; // increment
}
这样您需要提前知道要在阵列中存放多少项目。
另一种方法是使用像List这样可以动态增长的灵活集合。旁注:索引与同一[ ]
运算符一起使用,但通过Add方法添加项目
如果您想了解更多,请查看此overview of possible collection types