Скажите, у меня есть класс
public class TimestampedTrackId
{
private readonly int trackId;
private readonly DateTime insertTime;
public TimestampedTrackId(int trackId, DateTime insertTime)
{
this.trackId = trackId;
this.insertTime = insertTime;
}
public int TrackId
{
get
{
return trackId;
}
}
public DateTime InsertTime
{
get
{
return insertTime;
}
}
}
У меня большой список типа List<TimestampedTrackId>
, и мне нужно извлечь TimestampedTrackId
экземпляров из этого списка, где свойство InsertTime находится между минимальным и максимальным DateTime.
List<TimestampedTrackId> tracks; //Count=largeNumber
...
tracks.Where(t=>t.InsertTime>min&&t.InsertTime<max)
A List<T>
, очевидно, не является подходящим контейнером для этой задачи, поскольку он требует поиска по каждому элементу, чтобы проверить, находится ли InsertTime
между минимальным и максимальным значениями.
Итак, я предполагаю, что часть ускорения этого кода будет включать переупаковку списка в более подходящую коллекцию, но какую коллекцию?
При правильной коллекции (которая может быть ключевой), какой запрос я мог бы использовать, чтобы использовать максимальную скорость поиска?
Заранее спасибо