Пожалуйста, помогите мне преобразовать этот фрагмент кода C # 2.0 в Linq - PullRequest
0 голосов
/ 21 апреля 2010

Это не домашняя работа;) Мне нужно как A) оптимизировать следующий код (между TODO и ~ TODO), так и B) преобразовать его в [P] Linq. Лучшая читаемость желательна. Возможно, имеет смысл дать ответы на вопросы А) и Б) отдельно. Спасибо!

lock (Status.LockObj)
{
    // TODO: find a better way to merge these dictionaries
    foreach (KeyValuePair<Guid, Message> sInstance in newSInstanceDictionary)
    {
        this.sInstanceDictionary.Add(sInstance.Key, sInstance.Value);
    }

    foreach (KeyValuePair<Guid, Message> sOperation in newSOperationDictionary)
    {
        this.sOperationDictionary.Add(sOperation.Key, sOperation.Value);
    }
    // ~TODO
}

P.S. Проверьте мой другой, щедрый вопрос.

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Здесь нет методов LINQ, которые бы вам здесь помогли, хотя вы могли бы создать свои собственные методы расширения.

Если словари пусты до запуска этого кода, вы можете вызвать ToDictionary.

1 голос
/ 21 апреля 2010

Посмотрите на оператора Union:

 return newSInstanceDictionary.Union(newSOperationDictionary).ToDictionary(x => x.Key, y => y.Value);
...