2016-09-20 3 views
-2

Использование дозы ReadAllLines не создает манипулируемые массивы, а только «это только прочитанный текст». Код выглядит следующим образом:Как создать многомерный массив из .txt-файла?

class Program 
{ 
    static void Main(string[] args) 
    { 
     string[] lines = File.ReadAllLines("read.txt"); 
     foreach (string s in lines) 
     { 
      Console.WriteLine(s); 
     } 
     Console.WriteLine("press any key to close console."); 

     if (2 == 2) 
     { 
      lines[1][2] = 2; 
     } 
    } 
} 

Ошибки читает:

свойство или 'string.this [INT]' индекс не может быть назначен - это только для чтения

Есть ли фрагмент кода, который распознает номера и порядок в .txt-file? Текстовый файл отображается в следующей картине:

.txt-file

Каждая строка в .txt-файл должен быть строкой. Я попытался использовать комбинацию из foreach и for-loop операторов, но мне было нечего писать.

foreach (string s in lines) 
     { 
      for (int i = 0; i < 13; i++) 
      { 
       M[i] = 
      } 
     } 

В приведенном выше M является многомерным массивом в одних и тех же свойствах, как .txt-file.

+0

Строки неизменяемы в .NET, вы не можете изменять их после их создания. –

+1

Вы можете просто 'String.Split' строку по пробелу, которая даст вам массив строк, где каждый будет числом в виде строки. Затем вы можете применить 'int.Parse' к каждой ячейке, и результат будет int [] []. – kiziu

+0

Не работает ли 'M [i] = s [i]'? – Ferdin

ответ

0

Там нет встроенного метода для этого в .NET. Однако вы можете создать многомерный массив из таких строк:

private static string[][] ReadAllLines(string filename) 
{ 
    string[] allFileLines = File.ReadAllLines(filename); 

    string[][] arr = new string[allFileLines.Length][]; 

    for (int rowIndex = 0; rowIndex < allFileLines.Length; rowIndex++) 
    { 
     // Split by the space character and remove blank entries 
     arr[rowIndex] = allFileLines[rowIndex].Split(new [] { ' ' },StringSplitOptions.RemoveEmptyEntries); 
    } 

    return arr; 
} 
0

Вы можете создать многомерный массив символов из текстового файла

class Program 
{ 
    static void Main(string[] args) 
    { 
     char[][] arr = new char[numberofline][]; 

     string[] lines = File.ReadAllLines("read.txt"); 

     for (int i = 0; i < lines.Length; i++) 
     { 
      for (int j = 0; j < lines[i].Length; j++) 
      { 
       arr[i][j] = lines[i][j]; 
      } 
     } 

     Console.WriteLine("press any key to close console."); 
    } 
} 
Смежные вопросы