2013-10-27 88 views
0

我解釋像清單列表中的其他詞典

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

我需要轉換爲其他類型的字典列表類似下面一個巨大的名單:

List<Dictionary<String,SomeOtherType>> AnotherDict; 

是在'Dict'列表中有比foreach更好的方法。

回答

3

是的,你可以使用LINQ:

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

哪裏Convert是要應用到SomeType構建SomeOtherType任何轉換。

編輯:正如評論中指出的,這並不比使用嵌套的foreach循環更有效。這只是更簡單。

+0

值得一提的是,如果性能問題,它不會更快,然後簡單的循環...只是更乾淨。 – OopsUser

+0

@OopsUser:完成。 –

+0

@JonSkeet不能'ConvertAll()'是一個更好的候選人呢? –