【发布时间】:2019-03-05 18:51:03
【问题描述】:
我有一个文本文件:
Berzas,sula;;sula;;klevu saldial lapasula a aila, ar suart zemes vaikai du
我需要将其格式化为具有[n, n] 维度的二维数组。它必须是二维数组,我不能使用列表
这是我已经尝试过的:
string file = File.ReadAllText(@"C:\Users\Justas\Desktop\L1\Rekursija\Trecias.txt");
int n = 0;
while (Math.Pow(n, 2) != file.Length)
{
n++;
}
string[,] array = new string[n, n];
var list = Enumerable
.Range(0, file.Length / n)
.Select(i => file.Substring(i * n, n))
.ToList();
var res = string.Join(Environment.NewLine, list);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
array[i, j] = res[i].ToString()[j].ToString();
}
}
我尝试每 9 个位置添加一个新行,然后将其添加到二维数组中。
这是错误信息:
未处理的异常:System.IndexOutOfRangeException:索引超出了数组的范围。 在 System.String.get_Chars(Int32 索引) 在 C:\Users\Justas\Desktop\Bandymas\ConsoleApp1\Program.cs:line 37 中的 ConsoleApp1.Program.Main(String[] args) 处
预期输出:
Berzas,su
la;;sula;
;klevu sa
ldial lap
asula a
aula, a
r suart
zemes vai
kai du
【问题讨论】:
-
请更详细地描述输入与所需输出的关系。
-
while条件Math.Pow(n, 2) != file.Length会让你陷入无限循环。 -
您的预期输出是什么?
-
为什么不直接使用列表呢?而不是
string[,] array = new string[n, n]你可以简单地做List<List<string>> array = new List<List<string>>();消除需要指定大小 -
@MindSwipe 这是一个作业,我不能使用列表,它必须是一个二维数组
标签: c# arrays user-interface matrix