none
Матрицы RRS feed

  • Вопрос

  • Как в c# заполнить двумерный массив данными из файла?

    Например, в блокноте есть что-то такое:

    1 2 3 4

    5 6 7 8

    9 10 11 12

     

    И как из этого сделать массив [4,4], но если заранее неизвестно, сколько там столбцов и строк?

     

    Моя неудачная попытка что-то сделать:

    {
          StreamReader input = new StreamReader("C:\\Users\\User\\Desktop\\matrix.txt");
      
          Regex regex = new Regex(" ");
    
          int i = 0;
    
          int j = 0;
    
          string[,] matrix = new string[i,j];
    
          string line = input.ReadLine();
    
          while (line != null)
    
          {
            
    
            string[] sublines = regex.Split(line, line.Length);
    
            {
              
              
              string[i,j] = sublines[j];
    
              j++;
          }
            line = input.ReadLine();
    
            i++;
          }
    

Ответы

  •  List<string[]> m=new List<string[]>();
    int [,] matrix;
     StreamReader input = new StreamReader("C:\\Users\\User\\Desktop\\matrix.txt");
    while (true)
    { string S=input.ReadLine();
    if(S==null)break;
    m.Add(S.Split(' ',','));
    }
    // Дополнительно проверить, все ли строки одинаковы
    // Далее
    matrix=new int[m[0].Length,m.Count];
    for (int i=0;i< m.Count;i++)
    { for (int j=0;j<m[i].Length;j++)
    { matrix[i,j]=Convert.ToInt32((m[i])[j]);
    } }




    • Помечено в качестве ответа Matty Matiss 8 мая 2011 г. 18:12