У меня есть .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
мне нужно отсортировать этот .csv по 4-й колонке (IN_time) за счет увеличения времени (08:00:00, 08:00:01) и 6-й (In_Location) по алфавитному направлению (например, Восток, Север и т. Д.).
Пока мой код выглядит следующим образом:
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
Во-первых, вы игнорируете возвращаемое значение 'string.Split' - это как если бы вы не вызывали его. Что вы ожидаете от этого? Во-вторых, я настоятельно рекомендую вам создать класс для представления всех значений в одной строке текста. Разбирайте каждую строку и добавьте ее в список как новый объект соответствующего типа. (Мы не можем сказать, какими должны быть эти данные, к сожалению, поэтому трудно дать примерное имя.) –
Я бы использовал считыватель CSV (написанный кем-то еще), чтобы превратить данные в «Список' (если это единственное использование, я скорее всего не буду его вводить). Затем я буду использовать 'IEnumerable.OrderBy' (который хорошо работает с составным упорядочением) и использовать сценарий CSV (написанный кем-то еще), чтобы выплевывать все обратно. Или, я бы использовал Excel: D –
user2246674