2016-04-18 15 views
-2

ここに質問があります。私は配列の中で読むためにループを得ることができますが、新しい配列に要素を格納しません。ここのお手伝いをいただければ幸いです!文字列配列から数値を解析してint配列に変換する方法#

static void parse() 
    { 

     StreamReader sr = new StreamReader("sales.txt"); 

     //variables declared here 
     string line = ""; 
     double mean = 0; 
     double sum = 0.0; 
     int count = 0; 

     double answer = 0; 

     double[] numbersTwo = new double[10]; 


     while loop that reads in the .txt file 

     while ((line = sr.ReadLine()) != null) 
     { 
      if (line != null) 
      { 
       string[] detailsArray = line.Split(','); 

       for (int i = 0; i < detailsArray.Length; i++) 
       { 

        int number = 0, parseOne = 0; 

        parseOne = int.Parse(detailsArray[3]); 
        numbersTwo[number] = parseOne; 
        //number++; 
       } 
      } 
     } 
    } 
+1

なぜ番号++;コメントアウトされていますか?それはそこにあるはずです。 –

+2

なぜ 'detailsArray'をループし、インデックス3の文字列を解析するだけですか?あなたのファイルの内容は何ですか? 'numbersTwo'配列で正確に何をしたいですか? – juharr

+0

@juharr配列の3番目の要素は、解析したい数値です。 .txtファイルの形式は、ファーストネーム、セカンドネーム、年齢、および売上です。 – mick1996

答えて

0

この

int[] numbersTwo = new int[10]; 


while ((line = sr.ReadLine()) != null) 
    { 
     if (line != null) 
     { 
      string[] detailsArray = line.Split(','); 

      for (int i = 0; i < detailsArray.Length; i++) 
      {     
       numbersTwo[i] = Convert.ToInt32(detailsArray[i]); 
      } 
     } 
    } 
+0

いいえ申し訳ありません:(@neil – mick1996

+0

編集しました –

+0

あなたの入力ファイルがどのように見えるかを確認するのに役立ちます –

0

なぜ配列を試してみてください?あなたが本当に配列が必要な場合は、ちょうどあなたがそれはあなたがいつもしてきた

if (double.TryParse(num, answer)) 
    numbersTwo.Add(answer); 
0

が追加失敗した場合にはTryParseに行くことをお勧めします

static void parse() 
{ 
    StreamReader sr = new StreamReader("sales.txt"); 
    //variables declared here 
    string line = string.empty; 
    double answer = 0; 
    List<double> numbersTwo = new List<double>(); 
    //while loop that reads in the .txt file 
    while ((line = sr.ReadLine()) != null) 
    { 
     if (line != null) 
     { 
      foreach (string num in line.Split(',');) 
      { 
       numbersTwo.Add(double.Parse(num)); 
      } 
     } 
    } 
} 

終わりにリストからそれを作成
結果の配列の最初の要素と同じ位置にある番号です。私はあなたが望むことを達成する最もエレガントな方法は、Linqでこの数行を使用することです:

var numbers = File.ReadAllLines("sales.txt") 
    .SelectMany(line => line.Split(","), (line, elem) => int.Parse(elem)) 
    .ToArray();