我在一个文件夹中有4个.txt文档,每个文档有10行信息。我想保存数组中每个文件的每一行。我正在寻找能给我的解决方案:
//four arrays with 10 variables each
vFile_0[0-9]
vFile_1[0-9]
vFile_2[0-9]
vFile_3[0-9]
我可以通过在循环中基于 i 命名每个变量来实现这一目标:
for (int i = 0; i < vCount; i++)
{
string[] vFileLine_ + i = File.ReadAllLines("document_" + i + ".txt" );
}
这不起作用,有人知道我用我代替吗?
编辑:我将进一步详细介绍。我想在文件夹中组织任意数量的.txt文档,其中包含随机数量的行。
示例:
Document 1 has 6 lines of information.
Document 2 has 3 lines of information.
Document 3 has 12 lines of information.
Document 4 has 5 lines of information.
我希望将所有信息存储到数组中,一旦正确完成,变量名称将如下所示:
vFile_0 [5]
vFile_1 [2]
vFile_2 [11]
vFile_3 [4]
如上所示,每个文档都有一个相应的变量名,其数组量等于该文档中的行,这些数组中的每个变量都将该文档中的信息行存储为字符串。这种类型的变量存储的目的是我有一天可以运行程序并检测4个文件,每个文件有10行,或者120,000个文件,每个文件有30,000行。
我现在唯一的问题是以这种方式命名变量。
答案 0 :(得分:3)
您可以使用双数组替换单个string[][] vFile
数组:int fileCount = 0; // replace with actual file count...
string [][]vFile = new string[fileCount][];
for (int i = 0; i < fileCount; i++) {
vFile[i] = File.ReadAllLines("document_" + i + ".txt");
}
,这些行:
$ses = $sess_ch->setFetchMode(PDO::FETCH_ASSOC);
答案 1 :(得分:0)
您可以使用列表吗?我比数组更喜欢它们,特别是在处理具有可变行数的字符串/文件时。
List<List<String>> allDocuments = new List<List<String>>(); //Note this is a list of lists
for (int i = 0; i < vCount; i++)
{
string[] tmpRead = File.ReadAllLines("document_" + i + ".txt" );
List<String> thisDocument = new List<String>();
foreach(string line in tmpRead) {
thisDocument.Add(line);
}
allDocuments.Add(thisDocument);
}
答案 2 :(得分:0)
字典可能是您问题的最佳通用选项。您的代码如下所示
Dictionary<string, string[]> fileContents = new Dictionary<string, string[]>();
for (int i = 0; i < vCount; i++)
{
fileContents[vFileLine_ + i] = File.ReadAllLines("document_" + i + ".txt" );
}
这提供了一个通用的解决方案,可以根据需要添加任意数量的文件。