C# 使用lambda转换字典值
我这里有两个收藏:C# 使用lambda转换字典值,c#,linq,lambda,C#,Linq,Lambda,我这里有两个收藏: 充当缓存的字典 表示给定用户对每个现有工作流的权限的字典 这里的问题是缓存具有完整版本的特权(以及id、友好描述、文本解释等),我需要将字典转换为字典 是否可以使用单个lambda执行此操作?取决于您是否具有将单个枚举值转换为相应对象(例如工厂)的逻辑 为了转换一个字典,您可以使用ToDictionary()方法,该方法接受KeyValuePair两次,因此您可以第一次将其用于键,第二次用于值 假设我们有 Dictionary<string, List<st
- 充当缓存的
字典
- 表示给定用户对每个现有工作流的权限的
字典
字典
转换为字典
是否可以使用单个lambda执行此操作?取决于您是否具有将单个枚举值转换为相应对象(例如工厂)的逻辑 为了转换一个
字典
,您可以使用ToDictionary()
方法,该方法接受KeyValuePair
两次,因此您可以第一次将其用于键,第二次用于值
假设我们有
Dictionary<string, List<string>> a = new Dictionary<string, List<string>>();
同样,通过映射(选择
)每个枚举值并对其执行工厂,您应该能够将枚举转换为对象
Dictionary<Workflow, List<Privilege>> b
= a.ToDictionary(
kvp => kvp.Key,
kvp => kvp.Value.Select(PrivilegeFactory.Create).ToList()
);
Dictionary<Workflow, List<Privilege>> b
= a.ToDictionary(
kvp => kvp.Key,
kvp => kvp.Value.Select(PrivilegeFactory.Create).ToList()
);
Dictionary<Workflow, List<Privilege>> b
= a.ToDictionary(
kvp => kvp.Key,
kvp => kvp.Value.Select(t => cacheDictionary[(int)t])
);