Предполагая, что существует классУлучшение производительности запросов LINQ
public class StopTime
{
public TimeSpan? ArrivalTime { get; set; }
public TimeSpan? DepartureTime { get; set; }
public string StopID { get; set; }
public int StopSequence { get; set; }
public string TripID { get; set; }
}
Я должен считывать данные из файла CSV и отобразить его в указанном классе. Файл CSV может иметь много записей, в моем случае около 500000 записей.
После того, как я разобрал CSV-файл и данные карты в список StopTime
в разных функциях, я хочу фильтровать StopTimes
на основе TripId
. В моем сценарии у меня около 8000 TripId
s в списке StopTime
.
Я попытался создать словарь из списка, используя этот код:
var TripIdStops = new Dictionary<string, List<StopTime>>();
foreach (var tripId in ListOfTripId)
{
TripIdStops.Add(tripId, StopTimes.Where(x=>x.TripID==tripsDistinct).ToList());
}
Чтобы создать словарь, этот цикл должен фильтровать StopTime
с, помните 500000 записей и 8000 экземпляров TripIds.
Однако это очень трудоемкая задача. Есть ли способ улучшить производительность?