假设我有Dictionary<int,List<Tuple<string,object>>> d
。如何使用LINQ创建d
,Dictionary<int,List<Tuple<string,object,AnEnum>>> d'
(其中AnEnum
为enum
),AnEnum
Tuple<string,object,AnEnum>
为<Tuple<string,object>
由int
?
备注。这确实是一个非常嵌套的结构。只是为了解释一下:在我的世界中,有些产品由id(string
)表征,并且有字段(以string
命名),其值为{{1}的数字}' - 因此object
中的Tuple
。我有一个api,它是一个id List<int>
列表,一个字段列表List<string>
与Dictionary<int,List<Tuple<string,object>>>
相关联。根据某些字段的值,我可以知道我正在处理的产品的“类型”,键入我用enum
标记。
答案 0 :(得分:4)
嗯,也许是这样的:
d.ToDictionary(pair => pair.Key,
pair => pair.Value.Select(tuple =>
tuple.Create(tuple.Item1,
tuple.Item2,
ConvertToEnum(tuple))).ToArray());