Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将文件读入二维数组_C#_Arrays_Visual Studio 2010 - Fatal编程技术网

C# 将文件读入二维数组

C# 将文件读入二维数组,c#,arrays,visual-studio-2010,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();

类内定义

 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();
    }
public String[,]Sodoku_Gri=新字符串[9,9];
公共void按文件()填充网格
{
TextReader tr=新的StreamReader(“data.txt”);
//读一行文字
字符串存储_数据_from_file=tr.ReadLine();
for(int i=0;i
在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--3-- 我必须从文件中读取并将它们放置在c#中的2d数组中!在C++中是很容易的。我是初学者!在C++中,我们也应该在字符串中索引,以访问字符串中的每个字符。我可以在2d数组中写入这些数据吗?因此,Sodoku_网格[9,9]中的81个空间被文件中的数据填充

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

    Sodoku\u Gri[i,j]=存储来自文件[j]的数据。


  • 所以在C#中也很容易

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

    char[,] Sodoku_Gri = new char[9,9];
    
    Sodoku_Gri[i, j] = store_data_from_file[i*9+j];
    
    这条线包含了数独游戏中已知数字的位置 更正字符的索引应以这种方式计算

    char[,] Sodoku_Gri = new char[9,9];
    
    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();
    

    但是StuteDATAYFROXY文件只是一个字符串,如何像[i*+j]一样玩它,你可以像C++那样从输入字符串中读取字符,只需在字符串中标出它的位置。假设i=1和j=1,则检索10位置的字符并将其分配给Sodoku_Gri。它表示无法将隐式类型的字符转换为字符串!虽然sodoku_gri和store_data_from_文件类型都是字符串!这是一个数据结构问题,对吗?您想要一个9x9的单字符串网格吗?您可以使用char的ToString()方法实现这一点。或者更容易拥有一个9个字符串的数组,每个字符串的长度为9个字符吗