2013-10-27 3 views
0

У меня есть огромный список словаря, какСписок словарь в список другого словаря

List<Dictionary<String,SomeType>> Dict = new List<Dictionary<string,SomeType>>(); 

мне нужно преобразовать в список словаря какого-либо другого типа, как показано ниже:

List<Dictionary<String,SomeOtherType>> AnotherDict; 

ли там лучший подход, чем foreach в списке «Дикта».

ответ

3

Да, вы можете использовать LINQ:

AnotherDict = Dict.Select(d => d.ToDictionary(pair => pair.Key, 
               pair => Convert(pair.Value))) 
        .ToList(); 

Где Convert является то, что преобразования вы хотите применить к SomeType построить SomeOtherType.

EDIT: Как отмечено в комментариях, это не более эффективно, чем использование вложенных foreach циклов. Это просто проще.

+0

Стоит упомянуть, что если производительность является проблемой, она не будет быстрее, чем простой цикл ... просто чище. – OopsUser

+0

@OopsUser: Выполнено. –

+0

@JonSkeet Не может 'ConvertAll()' быть лучшим кандидатом для этого? –

Смежные вопросы