将文件中的数字保存到2D数组中

时间:2011-10-01 14:29:13

标签: c# arrays

我的文件中有一些数字如下:

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

2 个答案:

答案 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