C# 循环以初始化多个StreamWriter

C# 循环以初始化多个StreamWriter,c#,loops,file-io,streamwriter,C#,Loops,File Io,Streamwriter,我想做如下事情: int loopCount = 0; while (loopCount != 18) { StreamWriter DBSplit + loopCount = new StreamWriter(@"L:\BananaDB\DBFILE" + loopCount + ".txt"); loopCount++; } 最好的方法是什么?目前的问题是“DBSplit+loopCount”。是的,这是因为我试图向StreamWriter变量添加int,但我也不

我想做如下事情:

int loopCount = 0;
while (loopCount != 18)
{
    StreamWriter DBSplit + loopCount = 
    new StreamWriter(@"L:\BananaDB\DBFILE" + loopCount + ".txt");
    loopCount++;
}

最好的方法是什么?目前的问题是“DBSplit+loopCount”。是的,这是因为我试图向StreamWriter变量添加int,但我也不能使用string。有什么解决方案吗?

使用阵列?您还可以将
while
替换为
for
循环:

var writers = new StreamWriter[18];

for(int i =0; i<18; i++)
    writers[i] = new StreamWriter(@"L:\BananaDB\DBFILE" + i + ".txt");
var writers=newstreamwriter[18];

对于(int i=0;iAs ever,如果您希望多个变量按数字索引,请使用数组或列表。(如果您希望多个变量按名称索引,请使用
字典
)这里没有关于
StreamWriter
的具体内容-除了您需要小心处理所有东西这一事实。依我看,这听起来像是一个设计缺陷(在18个不同的地方保存相同的数据?)还有确保流正确关闭的责任不,这不是设计缺陷。我需要将一个大文件拆分为18个较小的文件。我仍然不明白为什么需要同时打开所有18个流。我的程序正在从一个非常大的文件逐行读取,这取决于该行上的信息,它将写入特定的fi这就是为什么。谢谢,这是一个非常合适的解决方案。当您使用完Dispose()/Close()后,请不要忘记对每一个都调用它们。或者如果可能的话,将您在using(){}block中使用的每一个都包装起来。