Как прочитать файл и сохранить каждое слово в массиве в массив строк, используя 2d массивы c# - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь прочитать текстовый файл и затем сохранить слова в 2d массиве. То, что я хочу, это превратить это:

a b c d e f g
h i j k l m n
o p q r s t u

Превращается в

[ [a,b,c,d,e,f,g], [h,i,j,k,l,m,n], [o,p,q,r,s,t,u] ]

Таким образом, внутри одного массива каждая строка получает свой собственный массив и внутри В этом массиве каждое слово (в данном случае только символы) является его собственным элементом.

        {
            string[] lines = system.IO.File.ReadAllLines(@FilePath);
            foreach (string line in lines)
            {
                //no idea what to put here
            }
            return contents;
        }

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Похоже, вам нужен массив массивов слов, или string[][]

// example of what you're reading from the file
var lineArray = new [] {
  "The quick brown fox",
  "Jumped over the lazy",
  "dog from a text file"
};

// 2d array output string[][]
var result = lineArray
  .Select(ln => ln.Split(' '))
  .ToArray();

// result type, should be string[][]
Console.WriteLine(result);

// should be the word "over"
Console.WriteLine(result[1][1]);

Mono C# версия компилятора 4.6.2.0 mcs -out: main.exe main. cs mono main.exe System.String [] [] более

0 голосов
/ 25 апреля 2020

Раствор с Linq

var result = File.ReadAllLines("C://text.txt").Select(l => l.Split(' ', StringSplitOptions.RemoveEmptyEntries)).ToArray();

Раствор с зубчатыми массивами

var lines = File.ReadAllLines("C://text.txt");
var array = new string[lines.Length][];
for (int i = 0; i < lines.Length; i++)
{
    var line = lines[i].Split(' ', StringSplitOptions.RemoveEmptyEntries);
    array[i] = line;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...