Как оптимизировать добавление в коллекцию?

У меня есть есть объект Trie, содержащий коллекцию с историей изменений. Выглядит это вот так:

public class Trie {

   public ObservableCollection<ReceivedHistoryMessage> History { get; set; }
            = new();

   public void AddToHistory( MqttMessage mqttMessage )
   {
        if ( History.Count >= 100 )
        {
             Count = 0;
             History.Clear();
        }

        History.Insert( 0, new ReceivedHistoryMessage
        {
             Time = DateTime.Now,
             Message = mqttMessage
        } );
        Count++;
   }
}

public class ReceivedHistoryMessage
{
    public DateTime Time { get; set; }
    public MqttMessage? Message { get; set; }
}

Объектов Trie много, кол-во объектов History много, поэтому все как-то подтормаживает. Стоит еще отметить, что всегда я просматриваю в дереве историю только одной ноды, не все коллекции нужны всегда Как все это можно оптимизировать?

upd:

попробовал убрать Insert, но т.к мне нужно вставка в начало, сделал следующее:

public class Trie
{
    History
       .Connect()
       .ObserveOn(RxApp.TaskpoolScheduler) // to run on background thread
       .Sort(SortExpressionComparer<ReceivedHistoryMessage>.Descending(e => e.Id))
       .ObserveOn(RxApp.MainThreadScheduler) // this needed because UI updates need to run on the main
       .Bind(out _uiHistoryMessages)
       .DisposeMany()
       .Subscribe();
}

а использую такие коллекции:

public SourceList<ReceivedHistoryMessage> History { get; } = new();
private readonly ReadOnlyObservableCollection<ReceivedHistoryMessage> _uiHistoryMessages;
public ReadOnlyObservableCollection<ReceivedHistoryMessage> UiHistoryMessages => _uiHistoryMessages;

History используется для добавления в методе AddToHistory()

ничего существенно не поменялось


Ответы (0 шт):