Mee*_*ena 3 c# dictionary list
我有一本字典,我想根据键上的条件从字典中检索所有值列表,即我只想检索列表中相应键匹配的值。
示例:字典如下
IDictionary<string, string> maskingValues = new Dictionary<string, string>();
maskingValues.Add("cat", "Me@ena");
maskingValues.Add("dog", "N&avya");
maskingValues.Add("llama", "vivek!a");
maskingValues.Add("iguana", "sh^ams");
Run Code Online (Sandbox Code Playgroud)
我有字符串列表
List<string> keysString = new List<string>();
keysString.Add("cat");
keysString.Add("fox");
Run Code Online (Sandbox Code Playgroud)
现在我的要求是从字典中获取值列表,其中键与keysString列表相匹配。
输出应该是
Me@ena
Run Code Online (Sandbox Code Playgroud)
到目前为止我所做的是
var all_parameters = maskingValues .Keys.ToList();
var parameters_to_mask = all_parameters.Intersect(keysString);
var values_list = parameters_to_mask.Where(k => data_dictionary.ContainsKey(k)).Select(k => data_dictionary[k]);
Run Code Online (Sandbox Code Playgroud)
所以 values_list将包含输出Me@ena,我从字典中检索所有键,然后将键列表与列表进行比较keysString,然后从两个列表相交的输出中检索值列表。但我可以以更优化的方式做到这一点,以便代码和性能良好。
提前致谢。请帮帮我。
这应该有效:
var q = maskingValues.Where(x => keysString.Contains(x.Key)).Select(x => x.Value);
foreach (var item in q)
{
Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4341 次 |
| 最近记录: |