所以我试图在字符串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();
}
答案 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();
}