2016-04-16 20 views
1

現在、いくつかの配列をマージしようとしていますが、年、月、および5種類の気象データ(含まれているデータに応じて文字列、ints、floatとしてインポートされています)を含むテキストファイルがいくつか与えられています。月とその他の情報が続く年を示すこれらの値を表示する必要があります。複数の配列を特定の順序で結合しますか?

これらの配列を結合するプロセスがわからないので、これは私が混乱している点です。情報がすべて一緒に格納されて表示されていますが、昇順または降順で検索して並べ替える必要があります年月などの情報を保持する。

これは私が配列で行うべきであるか、それともデータテーブルなどの別のデータ構造に適していますか?

+0

マージソートの実行方法を尋ねていますか? – Pemdas

+0

あなたはクラスを作る必要があるように見えます。その後、入力データをクラス内のさまざまなプロパティに解析します。データ全体がクラスのリストコレクションになります。 – jdweng

+1

あなたが記述した並べ替えの順序は、*プレゼンテーションレイヤ*の問題です。最初に入力を解析するときに解決したいとは限りません。 –

答えて

0

文字列のセットを含むクラスを定義しようとしましたか(ゲッターとセッターを使用)?このようなものを試してください

class Data 
{ 
    public string Year{get;set;} 
    public string Month{get;set;} 
    public string WeatherReport1{get;set;} 
    public string WeatherReport2{get;set;} 
    public string WeatherReport3{get;set;} 
    public string WeatherReport4{get;set;} 
    public string WeatherReport5{get;set;} 
} 

このクラスのオブジェクトを使用してください。 Year、Month、WeatherReport1、...の値を設定します。このクラスの型の配列にクラスのオブジェクトを追加します。このように少し

class Data 
{ 
    public string Year { get; set; } 
    public string Month { get; set; } 
    public string WeatherReport1 { get; set; } 
    public string WeatherReport2 { get; set; } 
    public string WeatherReport3 { get; set; } 
    public string WeatherReport4 { get; set; } 
    public string WeatherReport5 { get; set; } 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     Data objdata; 
     Data[] array = new Data[5]; 
     for (int i = 0; i < array.Length; i++) 
     { 
      objdata = new Data(); 
      objdata.Year = "Year"; 
      objdata.Month = "Month"; 
      objdata.WeatherReport1 = "report1"; 
      objdata.WeatherReport2 = "report2"; 
      objdata.WeatherReport3 = "report3"; 
      objdata.WeatherReport4 = "report4"; 
      objdata.WeatherReport5 = "report5"; 

      array[i] = objdata; 
     } 

     for(int i=0;i<array.Length;i++) 
     { 
      Console.WriteLine(array[i].Year+" "+array[i].Month+" "+array[i].WeatherReport1+" "+array[i].WeatherReport2+" "+array[i].WeatherReport3+" "+array[i].WeatherReport4+" "+array[i].WeatherReport5); 
     } 
     Console.Read(); 
    } 

私はそれが役に立ちそうです。私にお知らせください。私はStackOverflowの新人です。私は新しいものを学ぼうとしています:)

+0

'public static string [] WS1_TMax = File.ReadAllLines(" C:\\ Users \\ Computing \ \ Downloads \\ WS1_TMax.txt ");public static float [] WS1TmaxInt = Array.ConvertAll (WS1_TMax、float.Parse); '現在、テキストファイルをどのようにインポートしていますか、すでに作成済みの配列をどのように使用するのか把握できません新しいデータオブジェクトの内部?助けてくれてありがとう。 –

+0

このいずれかであなたの運をしてください試してみてください - **クラスデータ { パブリック文字列Ws1Tmax {を取得または設定します;} 公共フロートWs1TmaxInt {取得;セット;} } ** 次にあなたが** objdataを持っています.Ws1Tmax **。これは、 ** Ws1Tmax = Ws1_TMax [i]; ** と等しくなり、他の場合も同様です。私はそれが助けて欲しい:) –

0

は、検索するデータの量と要件に依存します。彼らがどのようにして漠然としているのか、より多くのデータを持っていれば、あなたは記憶に残っていますか?これらの問題を解決するためにデータベースを保存し検索する方法を考え出すことができます。ディスク。

データベースに十分な大きさでない場合、なぜコードでこれを実行していますか?あなたは優秀なものを記述しています。

潜在的にギガバイトを持つ可能性がありますが、一度に20〜30個のアイテムをuiに表示するだけでよいデータベースジョブです。

注文などで検索する場合、おそらく順序配列を見て、それをキーしてから赤色の黒い樹木などになる比較可能なキーを持つ必要があると判断します。基本的にはデータベースを使うことを意味するbツリーを見始めることができます。

関連する問題