У меня есть простая задача, когда мне нужно проверять объекты в одном словаре, и если определенные критерии соответствуют переходу на другой. Я спрашиваю, есть ли хороший образец, где я могу использовать языковые возможности для достижения этого. Прямой подход прост - используйте временную коллекцию, первый шаг определите показатели, второй шаг - фактический ход. Это нормально, но это не круто.Как перемещать объект между словарями?
Текущий код
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);
}
}
Я получил чувствуя, что вы действительно хотите использовать `Where`, а не` Select`. Я сомневаюсь, что код компилируется так, как сейчас, поскольку вход в `ToDictionary`, вероятно, является значением` bool`. – 2010-12-01 12:27:08
@Fredrik ha! вы правы, длинный день :) – 2010-12-01 12:27:41
... и есть мой upvote :) – 2010-12-01 12:28:11