Как перемещать объект между словарями?

У меня есть простая задача, когда мне нужно проверить объекты в одном словаре и, если определенные критерии соблюдены, перейти к другому. Я спрашиваю, есть ли какой-нибудь хороший шаблон, в котором я могу использовать языковые функции для этого. Прямой подход прост - используйте временный сбор, первый шаг определяет кандидатов, второй шаг делает фактический ход. Это нормально, но не круто.

Текущий код

class Order
{
  public int ID;
  public bool IsReady;
}

Dictionary<int, Order> ActiveDictionary;
Dictionary<int, Order> ProcessedDictionary;

public Update()
{    
 // temporary list, uncool
 List<Order> processed = new List<Order>();


 // fist step
 foreach(Order ord in ActiveDictionary)
 {
  if(ord.IsReady)
  {
    processed.Add(ord);
  }
 }

 // ok now lets move
 foreach(Order ord in processed)
 {
  ActiveDictionary.Remove(ord.ID);
  ProcessedDictionary.Add(ord.ID, ord);
 }
}
5
задан Captain Comic 1 December 2010 в 12:25
поделиться