我想使用 lambda
获得 n 个不同的字典表达:
Dictionary<string, string> d1 = new Dictionary<string, string>();
d1.Add("Joe", "2, Barfield Way");
d1.Add("Mike", "17, Apollo Avenue");
d1.Add("Jane", "69, Lance Drive");
Dictionary<string, string> d2 = new Dictionary<string, string>();
d2.Add("Joe", "2, Barfield Way");
d2.Add("Jane", "69, Lance Drive");
// var diff = d1.Except(d2);
假设我想获得上述两个词典的差异
var diff = d1.Except(d2);
现在我想使用
N
的 lambda 表达式得到相同的结果字典的数量。一瞬间,我将两本词典合二为一。我想使用
lambda
得到两个字典的差异表达式或任何其他 LINQ
表达。Dictionary<string, Dictionary<string, string>> d = new Dictionary<string, Dictionary<string, string>>();
d.Add("Test", d1);
d.Add("Test2", d2);
我尝试了下面的表达式,但没有得到任何结果。
d.Select(c => c.Value.Except(c.Value))
最佳答案
您需要一些 Linq 方法:
var result = d.SelectMany(d => d.Value).GroupBy(c => c.Key)
.Where(c => c.Count() == 1).ToDictionary(t => t.Key, t => t.Select(c => c.Value)
.FirstOrDefault()).ToList();
关于c# - 使用 LINQ 表达式获取多个嵌套字典除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59677508/