如何从.txt文件创建多维数组?

时间:2016-09-20 08:35:33

标签: c# arrays multidimensional-array

使用ReadAllLines剂量不能创建可操作的数组但仅仅是#34;它只是读取文本"。代码如下:

class Program
{
    static void Main(string[] args)
    {
        string[] lines = File.ReadAllLines("read.txt");
        foreach (string s in lines)
        {
            Console.WriteLine(s);
        }
        Console.WriteLine("press any key to close console.");

        if (2 == 2)
        {
            lines[1][2] = 2;
        }
    }
}

错误如下:

  

属性或索引' string.this [int]'无法分配 - 它是只读的

是否有一段代码可识别.txt-file中的数字和顺序?文本文件显示在下图中:

.txt-file

.txt文件中的每一行都应该是一个字符串。我尝试使用foreachfor-loop运算符的组合,但我对我应该写的内容很缺乏。

foreach (string s in lines)
        {
            for (int i = 0; i < 13; i++)
            {
                M[i] = 
            }
        }

上面的M是一个多维数组,其属性与.txt-file相同。

2 个答案:

答案 0 :(得分:0)

您可以从文本文件

创建多维char数组
class Program
{
    static void Main(string[] args)
    {
        char[][] arr = new char[numberofline][];

        string[] lines = File.ReadAllLines("read.txt");

        for (int i = 0; i < lines.Length; i++)
        {
            for (int j = 0; j < lines[i].Length; j++)
            {
                arr[i][j] = lines[i][j];
            }
        }

        Console.WriteLine("press any key to close console.");
    }
}

答案 1 :(得分:0)

在.NET中没有内置的方法。你可以做的是,从文件行创建一个多维数组,如下所示:

private static string[][] ReadAllLines(string filename)
{
    string[] allFileLines = File.ReadAllLines(filename);

    string[][] arr = new string[allFileLines.Length][];

    for (int rowIndex = 0; rowIndex < allFileLines.Length; rowIndex++)
    {
        // Split by the space character and remove blank entries
        arr[rowIndex] = allFileLines[rowIndex].Split(new [] { ' ' },StringSplitOptions.RemoveEmptyEntries);
    }

    return arr;
}