2016-04-16 76 views
1

当前尝试将一些数组合并在一起,我给出了一些包含年,月和5种天气数据的文本文件(已根据所包含的数据将其导入为字符串,整数和浮点数)。我现在必须显示这些值,以显示年份,以及月份和其他信息。按特定顺序将多个阵列合并在一起?

现在,我很困惑,因为我不确定将这些数组合并在一起的过程,因此信息全部包含在一起并显示出来,但是我还需要按升序和降序进行搜索和排序,同时保留诸如年和月等信息。

这是不是我应该寻找与阵列做的或者是更适合另一种数据结构,如数据表?

+0

你问如何做一个合并排序? – Pemdas

+0

看起来你需要上课。然后将输入数据解析到类中的不同属性中。你的整个数据将是该类的列表集合。 – jdweng

+1

排序顺序你描述是*表现层*的问题,你想解决您最初解析输入 –

回答

0

您是否尝试过定义一个包含字符串集合(使用getters和setters)的类?尝试像这样

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

'公共静态字符串[] = WS1_TMax File.ReadAllLines(“C未必是:\\ \\用户计算机\ \下载\\ WS1_TMax.txt“);我是如何导入我的文本文件,我只是无法抓住我将如何使用已创建的数组。新的数据对象内?谢谢您的帮助。 –

+0

试试你的运气与这一个请 - **类数据 { 公共字符串Ws1Tmax {获得;设置;} 公众持股Ws1TmaxInt {获取;集;}} ** 那么你就必须** objdata .Ws1Tmax **。它应该是等于 ** Ws1Tmax = Ws1_TMax [I]; ** 并且类似地为他人做相同的。我希望它有助于:) –

0

取决于数据量 - 以及您要搜索的内容的要求。如果他们在任何方式模糊或你有更多的数据,然后你想在内存中/可以bersed如何存储和搜索数据库,因为它旨在解决这些问题 - namley如何查询存储在文件中的数据一个磁盘。

如果它不是一个数据库足够大,你为什么代码实现这一点?你正在描述一个擅长擅长的事情。

这可能是一个数据库工作作为你可能有千兆字节但只需要说目前20-30项的UI在任何一个时间。

至于与订单等,你可能会看到一个有序阵列搜索,然后决定你需要键入它,然后有一个可比较关键,这将让你一个红黑树或一些这样的。一旦你变得足够大,你就开始看b树,这基本上意味着使用数据库。