我的文件中有一些数字如下:
22 33 44 55
11 45 23 14
54 65 87 98
我希望将它们(在我拆分后)保存在二维数组中,如:
x[0][1]==33
我该怎么办?
编辑:
我写了一些部分,我把评论放在代码中:
StreamReader sr = new StreamReader(@"C:\Users\arash\Desktop\1.txt");
string[] strr;
List<List<int>> table = new List<List<int>>();
List<int> row = new List<int>();
string str;
while ((str = sr.ReadLine()) != null)
{
strr = str.Split(' ');//here how should i save split output in two dimension array??
}
TIA
答案 0 :(得分:2)
这样做的一种方法可以是这样的:
StreamReader sr = new StreamReader(@"C:\Users\arash\Desktop\1.txt");
List<int[]> table = new List<int[]>();
string line;
string[] split;
int[] row;
while ((line = sr.ReadLine()) != null) {
split = line.Split(' ');
row = new int[split.Count];
for (int x = 0; x < split.Count; x++) {
row[x] = Convert.ToInt32(split[x]);
}
table.Add(row);
}
然后可以像这样访问表:
table[y][x]
答案 1 :(得分:1)
通过使用嵌套循环,您可以轻松创建多维数组。
嵌套两个循环,外部迭代输入中的行,内部数字排成一行。
或者你可以Linq
var myArray = File.ReadAllLines(@"C:\Users\arash\Desktop\1.txt")
.Where(s=> !string.IsNullOrWhiteSpace(s))
.Select(l => l.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries)
.Select(n => Convert.ToInt32(n)).ToArray()).ToArray();
myArray[0][1]
给你33