Вы можете попробовать Linq , чтобы запросить файл:
using System.IO;
using System.Linq;
...
int[][] result = File
.ReadLines(@"c:\myMatrix.txt")
.Where(line => !string.IsNullOrWhiteSpace(line))
.Select(line => line
.Split(new char[] { '\t', ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Select(item => int.Parse(item))
.ToArray())
.ToArray();
Обратите внимание, что часто jagged array, т.е. array of array (int[][]
) удобнее, чем 2d (int[,]
)
Изменить: Если вы настаиваете на 2D-массиве , вы можете получить его из зубчатый:
int[,] result2D = new int[
result.Length,
result.Any() ? result.Max(line => line.Length) : 0];
for (int row = 0; row < result.Length; ++row)
for (int col = 0; col < result[row].Length; ++col)
result2D[row, col] = result[row][col];