private Matrix ScanMatrix(string text) { uint rows = 0, cols = 0; foreach (var row in Regex.Split(text, "\r\n|\r|\n")) { if (row != "") { cols = 0; foreach (var col in row.Trim().Split(' ')) { cols++; } rows++; } } Matrix m = FactoryMatrix.CreateMatrix(rows, cols); rows = 0; foreach (var row in Regex.Split(text, "\r\n|\r|\n")) { if (row != "") { cols = 0; foreach (var col in row.Trim().Split(' ')) { if (double.TryParse(col, out m[rows][cols++]) == false) { throw new ArgumentException(); } } rows++; } } return(m); }