Я бы предложил использовать библиотеку типа кварца для выполнения задачи через регулярные промежутки времени. Что делает сервлет действительно? Он отправляет вам отчет?
Давайте предположим, что Ваш Список содержит объекты типа Foo (с международным идентификатором и строковым Описанием).
можно использовать Linq для превращения того списка в Словарь как это:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
Если у Вас есть доступ к Linq, можно использовать функция ToDictionary.
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
Также посмотрите System.Collections.ObjectModel.KeyedCollection<TKey, TItem>
. На лучшее соответствие для того, походит, что Вы хотите сделать.