所以我对c#和编码相对较新,我希望你能帮助我。
所以我之前在另一个主题中找到了,如何从文本文件中保存到2d数组但是我已经被赋予了一个任务,如果我正在读取的文件可以拆分成多个数组,那将是最好的。这是我到目前为止(请温柔):
public void Importer()
{
String input = File.ReadAllText(@"C:\ballots.txt");
int r = 0;
int c = 0;
int counter = 0;
ballotHolder = new int[r, c];
foreach (var row in input.Split('\n'))
{
c = 0;
foreach (var col in row.Trim().Split(' '))
{
if (col == "A")
{
counter++;
VoterBallot holder + ("counter") = new VoterBallot();<-- just an idea that does not work..
}
else
{
//ballotHolder[r, c] = int.Parse(col.Trim());
c++;
}
}
r++;
}
}
文本文件的格式如下:
A A
1 2 3
3 2 1
3 1 2
A A
1 2 3 4
4 3 2 1
1 2 3 4
4 2 3 1
1 3 2 4
B B
因为它正在读取一个数组,第一个块很简单但是我无法弄清楚如何将文本块保存到SEPARATE数组中。 “VoterBallot”类只包含一个名为“ballotHolder”的公共二维数组......对此我有一个简单的答案我很有信心,但我不能为我的生活弄清楚。任何人都可以提供任何帮助都很棒!
答案 0 :(得分:0)
而不是将整个文件作为字符串读取,然后将该字符串拆分为多行,然后将这些行拆分为多个数组,如果您一次读取一行文件然后决定(基于该行)你刚才读到)它应该进入哪个阵列?
有关逐行阅读的文档:http://msdn.microsoft.com/en-us/library/94223t4d.aspx
答案 1 :(得分:0)
请试一试。
var input = File.ReadAllText(@"C:\ballots.txt");
var list = input.Split('\n');
var matrix = new Array[list.Count(), 1];
int i = 0;
foreach (var element in list)
{
var strings = element.Split(' ');
matrix[i, 0] = strings;
i++;
}