2017-04-02 9 views
0

いくつかの援助を探しています。私は本当に簡単だと確信していますが、私はちょうどそれの周りに私の頭を得るように見えることはできません。C#String配列をDoubleにする

まず、ここに私のコードは、これまでのところです:

 //Prompts user to enter numbers 
    Console.Write("Enter a line of comma-seperated temperatures: "); 
    string temps = Console.ReadLine(); 
    //Splits commas, seperating numbers into array 
    string[] numsInString = temps.Split(','); 
    int temps1 = numsInString.Length; 
    int[] temps2 = new int[temps1]; 
    for (int i = 0; i < numsInString.Length; i++) 
    { 
     temps2[i] = int.Parse(numsInString[i]); 
    } 


    Console.WriteLine("Minimum temp: " + temps2.Min()); 
    Console.WriteLine("Average temp: " + temps2.Average()); 

だから、それは、カンマで区切られた温度すなわち「5」の入力を促す「5,6,7,8」。私の問題は、私が "5.4,5.7,6.3,6.8"のような小数点以下の桁の温度を持つことができないことです。私は文字列を二重に変換する必要があることを理解しましたが、それを行う方法は完全にはわかりません。あなたはdouble[]に使用するアレイのタイプを変更して、代わりにintdoubleを解析するために、あなたのパースを変更したい

おかげ

+2

LINQのアプローチ同じforループを実行しますが、小さな小さな(あなたのケースでは)より効果的かつ十分な宣言型となりますint'を 'double'で置き換えて' double [] 'を呼び出し、' double.Parse'を呼び出します。あなたがそれをしたら、おそらくうまくいくでしょう。 –

+0

@CharlesMagerエラーが発生しましたが、エラーが発生しました。 "エラー1 \t明示的な変換が存在しますか?"またはいくつかのコードを並べ替えることができます。あまりにも確かではありません。これらのエラーは、[] – royalrekesh

+0

の間のすべてを指しています。ちょっと近づけば、 'int temps1'と' int i'を 'Length'が' int'に置き換えないようにしたいと思います。 'temps2'配列の型を変更し、' int.Parse'を 'double.Parse'に変更したいだけです。 –

答えて

2

double[] temps2 = new double[temps1]; 

for (int i = 0; i < numsInString.Length; i++) 
{ 
    temps2[i] = double.Parse(numsInString[i]); 
} 

脇のビットとして、あなたも使用することができますこれをより宣言的に表現するためのLINQ:

double[] temps2 = temps.Split(',') 
    .Select(double.Parse) 
    .ToArray(); 
1

すでに他の回答とcommenあなたはint[]配列をdouble[]配列に変更し、文字列を2倍に解析する方法を使用する必要があります。

ループまたはLINQの代わりに、私はArray.ConvertAllメソッドを提案して、文字列の配列をdouble型の配列に変換したいと考えています。

Console.Write("Enter a line of comma-seperated temperatures: "); 
var rawData = Console.ReadLine(); 
var rawTemperatures = rawData.Split(','); 
var temperatures = Array.ConvertAll<string, double>(rawTemperatures, double.Parse); 

Array.ConvertAll方法は、あなたの最初の考えは、あなたが `のすべての出現を交換してくださいかもしれないという可能性があり

関連する問題