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

时间:2014-11-13 15:59:28

标签: c# arrays file 2d readfile

我在表单中有一个文本文件。

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();

请建议我这样做。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以使用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();