C# LINQ:从字典中获取所有对,其中pair.key位于字符串数组中
有人能帮我把这个翻译成LINQ吗? 我有一个字符串数组(step.Variables)、一个字典(Parameters),我希望参数中的所有对都位于step.Variables中 这段代码可以工作,但我想使用LINQ,我不知道如何翻译:C# LINQ:从字典中获取所有对,其中pair.key位于字符串数组中,c#,linq,C#,Linq,有人能帮我把这个翻译成LINQ吗? 我有一个字符串数组(step.Variables)、一个字典(Parameters),我希望参数中的所有对都位于step.Variables中 这段代码可以工作,但我想使用LINQ,我不知道如何翻译: parameters = new Dictionary<string, string>(); foreach (string variable in step.Variables) { if (Parameters.ContainsKey(v
parameters = new Dictionary<string, string>();
foreach (string variable in step.Variables)
{
if (Parameters.ContainsKey(variable))
{
parameters[variable] = Parameters[variable];
}
}
如果我理解的很好,您需要的是:
var parameters = Parameters.Where(p=>step.Variables.Contains(p.Key))
.ToDictionary(p=>p.Key,p.Value);
您需要首先过滤
参数
字典,查看键是否在变量
集合中,并转换结果,即IEnumerable
,如果步骤中存在键,则过滤出参数字典。变量然后将其转换为字典
var parameters = Parameters.Where(p => steps.Variables.Contains(p.Key)).ToDictionary(p => p.Key);
如果可以,可以考虑使用RESARPER。在可能的情况下,它会将任何循环转换为LINQ。
var parameters = Parameters.Where(p => steps.Variables.Contains(p.Key)).ToDictionary(p => p.Key);