2017-12-20 4 views
0

ファイルの各行を1行ずつ読み込み、これらの個々の行を配置したい個々の「言葉」をギザギザの配列にして、私はさらにそれらを操作することができます。誰もがよく知っているならば、私はコードの挑戦のアドベントの12日目をしようとしていますので、私の入力はテキストファイルを行ごとに解析し、単語のギザギザの配列に分割する

0 <-> 780, 1330 
1 <-> 264, 595, 1439 
2 <-> 296, 531, 1440 

のように見えると私はそれぞれの行は、私のようなのためにこれに取り組んできました

array[0][0] = 0 
array[0][1] = <-> 
array[0][2] = 780 
array[0][3] = 1330 
array[1][0] = 1 
... etc 

になりたいです今日は1日であり、私はC#でこれを行うようには思えません。ここで私は

static void Main(string[] args) 
{ 
    string[][] input = new string[2000][]; 
    string line; 
    System.IO.StreamReader file = 
    System.IO.StreamReader(@"c:/theFilePath.txt"); 
    while ((line = file.ReadLine()) != null) 
    { 
     for (int i = 0; i < 2000; i++) 
     { 
      string[] eachArray = line.Split(null); 
      input[i] = new string[] { eachArray }; 
     } 
     } 
     for (int i = 0; i < input.Length; i++) 
     { 
      for (int j = 0; j < input[i].Length; j++) 
      { 
      Console.WriteLine(input[i][j]); 
      } 
     } 
    } 

をしようとしているソリューションでは、最新の刺し傷と私は取得していますエラーが

「暗黙的に型文字列[]文字列に変換できません」されている。しかし、それぞれの行はいけませんギザギザの配列のstring[]であり、stringではありませんか?

舞台裏で何が起こっているのか、基本的な側面が欠落しているはずです。 File.ReadAllLinesFile.ReadLinesを使用して文字列配列として解析しようとしましたが、問題は常にループ内で配列をインスタンス化することになります。その仕事をしているようには見えません。

これをC#で解決する他の方法も歓迎されますが、私はこの問題をよりよく理解したいと思います。

+0

それは単に '入力[I] = eachArrayなければならないと仮定し、'。配列初期化子( 'new string [] {}')は{}内に 'string'値のみを持つことができます – ASh

+0

私もそれを試みましたが、問題は同じ行を何度も何度も印刷し続けることです。インデックスに適切に分割されますが、ファイルの次の行に進むことはありません。 –

+0

'line = file.ReadLine();'は 'for'ループ内になければなりません。 – ASh

答えて

2

File class from System.IOは、ここで使用できる方法ReadAllLinesを持っています。 SelectToArray LINQの拡張メソッドを使用して各ラインを分割して配列に変換し (アクセスするために必要なusing Sを追加する方法を述べ)

using System.IO; 
using System.Linq; 

string[][] input = File.ReadAllLines(@"c:/theFilePath.txt") 
         .Select(x => x.Split(' ')) 
         .ToArray(); 
+0

これはさらに簡潔です。助けてくれてありがとう! –

+0

@MikeWeiss、そうですね、Linqはしばしばループ[s]で書かれたコードの短縮に役立ちます。私の答えが助けられたなら、それを受け入れるようにしてください。 – ASh

+0

申し訳ありませんが、今でも受け入れられているとマークされている、これは少し新しく、私は間違いなくLinqを詳しく見ています –

関連する問題