文件读入2d数组

时间:2012-12-07 17:42:18

标签: c# arrays visual-studio-2010

在课程定义

 public String[,] Sodoku_Gri = new String [9, 9];

    public void populate_grid_by_file()
    {
        TextReader tr = new StreamReader("data.txt");

        // read a line of text
        String store_data_from_file =  tr.ReadLine();
        for (int i = 0; i < Sodoku_Gri.GetLength(0); i++)
        {
            for (int j = 0; j < Sodoku_Gri.GetLength(1); j++)
            {

                Sodoku_Gri[i, j] = __________??
            }
        }
        tr.Close();
    }

在data.txt里面写着“1--2--3--3-4-4-5 --- 7-3-4 --- 7--5--3-6-- 7 --- ------- 4--3-2--4-5 --- 3--2-6--7 4 --- 4--3-” 我必须从文件中读取它并将它们放在c#中的2d数组中!在c ++中很容易。我是初学者!在c ++中,我们也应该在字符串中索引以访问字符串中的每个字符串!我能在二维数组中写这些数据吗?所以Sodoku_Grid [9,9]中的81个空格用文件中的数据填充!

2 个答案:

答案 0 :(得分:0)

  1. 您可能希望将tr.ReadLine()移动到最里面的循环中。
  2. 您可以使用索引器访问字符串中的单个字符:

    Sodoku_Gri[i,j] = store_data_from_file[j]

  3. 所以在C#中也很容易。

答案 1 :(得分:0)

假设您的Sodoku_Gri是以这种方式声明的二维char数组

char[,] Sodoku_Gri = new char[9,9];

然后该行包含已知数字的数独游戏的位置 应该以这种方式计算纠正char的索引

Sodoku_Gri[i, j] = store_data_from_file[i*9+j];

(顺便说一句,该行导致无效的数独模式)

编辑:如果Sodoku_Gri被声明为

,请在下方查看您的评论
string[,] Sodoku_Gri = new string[9,9];

然后您需要将字符串转换添加到索引字符

Sodoku_Gri[i, j] = store_data_from_file[i*9+j].ToString();