我有一個.csv文件,其中包含以下標題和示例行。按多個參數排序列表
AgentID,Profile,Avatar,In_Time,Out_Time,In_Location,Out_Location,Target_Speed(m/s),Distance_Traveled(m),Congested_Duration(s),Total_Duration(s),LOS_A_Duration(s),LOS_B_Duration(s),LOS_C_Duration(s),LOS_D_Duration(s),LOS_E_Duration(s),LOS_F_Duration(s)
2177,DefaultProfile,DarkGreen_LowPoly,08:00:00,08:00:53,East12SubwayportalActor,EWConcourseportalActor,1.39653,60.2243,5.4,52.8,26.4,23,3.4,0,0,0
我需要通過字母方向增加時間(08:00:00,8時00分01秒)和第六屆(In_Location)(例如東來此.csv由第4列(In_time的)排序,北等)。
到目前爲止,我的代碼如下所示:
List<string> list = new List<string>();
using (StreamReader reader = new StreamReader("JourneyTimes.csv"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
line.Split(',');
list.Add(line);
}
我在.csv讀取和使用逗號(沒有其他逗號所以這不是一個問題),把它分解。然後我將每行添加到列表中。我的問題是我如何排序兩個參數列表和.csv的標題。
我一直在尋找這個,我對編程相對比較陌生,這是我的第一個程序,所以我對我的知識缺乏表示歉意。
您分割線('line.Split(',');')並丟棄結果。 – I4V 2013-05-13 20:27:16
首先,你忽略了'string.Split'的返回值 - 就好像你沒有調用它。你期待它做什麼?其次,我強烈建議您創建一個類來表示一行文本中的所有值。解析每一行,並將其作爲適當類型的新對象添加到列表中。 (我們不能真正知道這些數據是什麼意思,不幸的是,所以很難給出一個樣本名稱。) – 2013-05-13 20:27:22
我會使用CSV閱讀器(由其他人編寫)將數據轉換爲一個'List' (如果這是我可能不會再輸入的唯一用法)。然後我會使用'IEnumerable.OrderBy'(它可以很好地處理複合排序),並使用CSV編寫器(由其他人編寫)將所有內容都吐出來。或者,我會使用Excel:D –
user2246674
2013-05-13 20:28:32