2012-11-27 70 views
-1
using System; 
using System.IO; 

public class Earthquake 
{ 
    public string Magnitude { get; set; } 
    public string Location { get; set; } 
    public string Latitude { get; set; } 
    public string Longitude { get; set; } 
    public string depth { get; set; } 
    public string date { get; set; } 
    public string EventID { get; set; } 
    public string URL { get; set; } 
    public Earthquake() 
     : this(string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty) 
    { } 
    public Earthquake(string magna, string locate, string lat, string longi, string dept, string dat, string Event, string website) 
    { 
     Convert.ToDouble(Magnitude = magna); 
     Location = locate; 
     Convert.ToDouble(Latitude = lat); 
     Convert.ToDouble(Longitude= longi); 
     Convert.ToDouble(depth = dept); 
     date = dat; 
     EventID = Event; 
     URL = website; 
    } 

} 
public class ManageData 
{ 
    public void getData() 
{ 
    string[] text = File.ReadAllLines(@"Earthquakes.csv"); 
    foreach (string line in text) 
    { 
     string[] myColumns = line.Split(','); 
     Earthquake earth = new Earthquake(myColumns[0], myColumns[1], myColumns[2], myColumns[3], myColumns[4], myColumns[5], myColumns[6], myColumns[7]); 
     //here i want to put each data in the Earthquake class 
    } 
} 


} 

基本上csv文件是8列,所以我所做的是讀出由行文件,然後創建存儲從由逗號分隔的一個串中的每個數據片段的陣列。我現在想要做的是先按大小對數據進行排序,然後再用bubblesort對數據進行排序。C#排序2個類別與冒泡排序

+2

爲什麼它必須與最糟糕的排序算法? – gdoron

+2

你爲什麼要使用冒泡排序?分配? – Guffa

+2

那麼你的問題是什麼?你遇到什麼問題實現你在這裏發佈的需求? – Servy

回答

0

如果bubblesort不是要求的一部分,並且您只需要一個排序列表,那麼您可以使用LINQ。

這樣的事情應該工作。

public class ManageData 
{ 
    public List<Earthquake> AllEarthquakes { get; private set; } 
    public IOrderedEnumerable<Earthquake> getData() 
    { 
     string[] text = File.ReadAllLines(@"Earthquakes.csv"); 
     foreach (string line in text) 
     { 
      string[] myColumns = line.Split(','); 
      Earthquake earth = new Earthquake(myColumns[0], myColumns[1], myColumns[2], myColumns[3], myColumns[4], myColumns[5], myColumns[6], myColumns[7]); 
      //here i want to put each data in the Earthquake class 
      AllEarthquakes.Add(earth); 
     } 

     return AllEarthquakes.OrderBy(eq => eq.Magnitude).ThenBy(eq => eq.depth); 
    } 
} 
+1

除了不使用bubblesort之外,這個答案還有問題嗎? –

+0

我沒有。但是,顯示使用IComparer的例子(例如[List.Sort](http://msdn.microsoft.com/en-us/library/234b841s.aspx))可能會有所幫助,如果LINQ不可用基於價值的排序,在別處提供的實現,可以平凡地支持IComparer .. – 2012-11-27 20:17:58

+0

thx @pst,很高興我不會錯過某些明顯的東西。 –