无法将带[]的索引应用于类型'方法组'的表达式。不知道发生了什么

时间:2014-09-02 22:35:44

标签: c# indexing apply

所以我试图在字符串theMap中读取一个txt文件,然后在map中复制map并返回map。我也试图在2d字符串中读取Txt文件。然后返回的数组是map。我想在控制台上打印它,并且“无法将带有[]的索引应用于'方法组'类型的表达式”这里的问题也是代码。

    public static string[,] Reader()
    {
        string theMap = System.IO.File.ReadAllText(@"C:\Users\Public\Console Slayer\Map\map.txt");


        int k = 0, l = 0;
        string[,] map = new string[11,54];
        foreach (var row in theMap.Split('\n'))
        {
            foreach (var col in row.Trim().Split(' '))
            {
                map[l,k] = (col.Trim());
                l++;
            }
            k++;
        }
        return map;
    }
    public static void Printer()
    {
        for (int y = 0; y < 11; y++)
        {
            for (int x = 0; x < 54; x++)
            {
                Console.Write(Reader[y,x]);
            }
            Console.WriteLine();
        }
    }
    static void Main()
    {
        Reader();
        Printer();
    }

1 个答案:

答案 0 :(得分:2)

Reader是一种方法。您无法为其编制索引,但可以索引它的结果

Console.Write(Reader()[y,x]);
//                  ^ You need these parens to invoke the method.

然而,这将调用每个循环的函数,以11 * 54 = 594次读取文件!读取文件一次,然后存储结果;没有必要在每次循环迭代时调用此方法:

var data = Reader();

for (int y = 0; y < 11; y++)
{
    for (int x = 0; x < 54; x++)
    {
        Console.Write(data[y,x]);
    }
    Console.WriteLine();
}