2012-11-28 135 views
-2
public class Earthquake 
{ 
    public double Magnitude { get; set; } 
    public string Location { get; set; } 
    public double Latitude { get; set; } 
    public double Longitude { get; set; } 
    public double depth { get; set; } 
    public DateTime 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) 
    { 
     Magnitude = Convert.ToDouble(magna); 
     Location = locate; 
     Latitude = Convert.ToDouble(lat); 
     Longitude = Convert.ToDouble(longi); 
     depth = Convert.ToDouble(dept); 
     date = Convert.ToDateTime(dat); 
     EventID = Event; 
     URL = website; 
    } 

} 


public void GetData() 
    { 

     string[] text = File.ReadAllLines(@"Earthquakes.csv"); 
      Earthquake[] data = new Earthquake[1]; 
      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]]; 
       data[i] = earth[i]; 
       i++; 
     } 
} 

忽略註釋的部分我控制了這些數據。我遇到的問題是將csv文件中的數據存入地震陣列。我得到的語法錯誤,我知道爲什麼,這是因爲數據類型不正確,但我真的不知道如何解決它。 另外,如果您注意到我正在嘗試使用冒泡排序,並且由於沒有定義「比較」的double,我會用什麼來代替?從csv文件中獲取數據並將其放入數組

+1

-1:你真的需要發佈這麼多的代碼? –

+0

這與你的其他[問題]有何不同(http://stackoverflow.com/questions/13577865/c-sharp-reading-data-from-a-csv-file-with-8-columns-and-sorting-它),ps我沒有upvote你的問題,你有一個哥們呢? –

+0

有人告訴我標記爲已回答並創建一個新的。我沒有好友 – user1784655

回答

1

如果您從CSV文件中讀取數據,則可能必須從分隔值中刪除空格。

嘗試增加.Trim()到您的列變量

myColumns[0].Trim() 

如果你想找排序侑陣列考慮使用System.Linq的

如:

var byMag = earthQuakes.OrderBy(e => e.Magnitude); 

看你的代碼你發佈了,GetData()將不起作用。

嘗試返回一個列表或可枚舉

public IEnumerable<Earthquake> GetData(string filename) 
    { 
     string[] text = File.ReadAllLines(filename); 
     foreach (string line in text) 
     { 
      string[] myColumns = line.Split(','); 
      yield return new Earthquake(myColumns[0].Trim(), myColumns[1].Trim(), myColumns[2].Trim(), myColumns[3].Trim(), myColumns[4].Trim(), myColumns[5].Trim(), myColumns[6].Trim(), myColumns[7].Trim()); 
     } 
    } 

用法:

var earthquakes = GetData(@"Earthquakes.csv"); 
+0

等待什麼?我已經知道如何分割數據,我只需要知道如何將它放入我的地震數組中。現在我得到了很多語法錯誤,因爲它不是正確的變量類型 – user1784655

+0

ok,如果按「」拆分,請考慮這個「3,4,6」,否則您將無法將「4」轉換爲int因爲數字沒有空白。 –

+0

哦,我明白你在說什麼了。謝謝! – user1784655

相關問題