从文本文件读取到C#中的多个数组或类?

时间:2014-11-21 15:42:03

标签: c# arrays file-io

所以我对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”的公共二维数组......对此我有一个简单的答案我很有信心,但我不能为我的生活弄清楚。任何人都可以提供任何帮助都很棒!

2 个答案:

答案 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++;
}