正在读取C#中的2d字符数组

本文关键字:2d 字符 数组 中的 读取 | 更新日期: 2023-09-27 18:30:13

我有一个格式为.的文本文件

8
* 0 * * * 0 0 0
0 * 0 * 0 * * *
0 0 * 0 * 0 0 0
0 0 0 0 * 0 0 0
0 * * 0 0 0 * 0
0 0 0 0 * 0 0 *
* 0 * 0 0 0 * 0
0 0 0 0 * 0 0 0

其中8告诉我要读取的文件中的行和列数,然后是8×8行和列的char。这是读取8*8数组的代码。我不知道如何先单独读取整数8,然后再运行我的这段代码。

char[][] result = File.ReadAllLines("hotel_in2.txt")
   .Select(l => l.Split(' ').Select(i => char.Parse(i)).ToArray()).ToArray();

请给我一个方法。

正在读取C#中的2d字符数组

您可以使用Skip方法跳过数组的第一个元素:

char[][] result = File.ReadAllLines("hotel_in2.txt").Skip(1)
   .Select(l => l.Split(' ').Select(i => char.Parse(i)).ToArray()).ToArray();

您可以使用Skip绕过第一行,因为您的代码似乎不需要它。

char[][] result = File.ReadAllLines("hotel_in2.txt")
   .Skip(1)
   .Select(l => l.Split(' ').Select(i => char.Parse(i)).ToArray())
   .ToArray();

或者,您可以将ReadAllLines分配给一个变量,并使用First来获得该值。

var file = File.ReadAllLines("hotel_in2.txt");
int size = int.Parse(file.First());
char[][] result = file
   .Skip(1)
   .Select(l => l.Split(' ').Select(i => char.Parse(i)).ToArray())
   .ToArray();