Tengo una tarea simple en la que necesito verificar objetos en un diccionario y si se cumplen ciertos criterios, se pasa a otro. Lo que estoy preguntando es si hay algún patrón bueno en el que pueda usar la función de idioma para lograrlo. El enfoque directo es simple: use la recopilación temporal, el primer paso determine los candidos, el segundo paso haga el movimiento real. Está bien, pero no es genial.¿Cómo mover objetos entre diccionarios?
código actual
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);
}
}
Tengo una sintiendo que realmente quieres usar 'Where' y no' Select'. Dudo que el código se compile como está ahora, ya que la entrada a 'ToDictionary' es probablemente un valor' bool'. –
@Fredrik ha! tienes razón, día largo :) –
... y está mi voto :) –