У меня есть простая задача, когда мне нужно проверить объекты в одном словаре и, если определенные критерии соблюдены, перейти к другому. Я спрашиваю, есть ли какой-нибудь хороший шаблон, в котором я могу использовать языковые функции для этого. Прямой подход прост - используйте временный сбор, первый шаг определяет кандидатов, второй шаг делает фактический ход. Это нормально, но не круто.
Текущий код
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);
}
}