我有两个字典:
Dictionary<DateTime, decimal> d1;
和Dictionary<DateTime, decimal> d2;
我想要两个执行 linq 查询以从 d1 中选择所有元素d2..ContainsKey(d1.key);
我有两个字典:
Dictionary<DateTime, decimal> d1;
和Dictionary<DateTime, decimal> d2;
我想要两个执行 linq 查询以从 d1 中选择所有元素d2..ContainsKey(d1.key);
var results = d1.Where(x => d2.ContainsKey(x.Key)).Select(x => x.Value).ToList();
或者从选定的数据创建另一个字典:
var results = d1.Where(x => d2.ContainsKey(x.Key)).ToDictionary(x => x.Key, x => x.Value);
如果您想要十进制值作为结果:
IEnumerable<decimal> result = d2.Keys.Intersect(d1.Keys).Select(k => d1[k]);
如果您想从交集处获取新字典:
Dictionary<DateTime, decimal> result = d2.Keys.Intersect(d1.Keys)
.ToDictionary(k => k, k => d1[k]);
from rec in d1 where d2.ContainsKey(rec.key) select d1
试试这个:
var values = d1.Where(kvp => d2.ContainsKey(kvp.Key)).Select(kvp => kvp.Value);
d1.Keys.Intersect(d2.Keys).ToDictionary( x => x, x => d1[x]);
或者
d1.Keys.Where(k => d2.ContainsKey(k)).ToDictionary( x => x, x => d1[x]);