有人可以告诉我查询此内容的正确方法吗:
dictionary of dictionary
Dictionary<int, Dictionary<Guid, AutoStopWatchAndLog>> _dicDictionaryThread
其中我正在寻找的是来自第一级中的任何一个,然后来自第二级中级别小于 x 的任何项目
迪克斯贝特洛是:Dictionary<int, Dictionary<Guid, AutoStopWatchAndLog>>
var mostlikey = dics.FirstOrDefault(x=>x.Value.Where(y=>y.Value.Level > x));
如果要投影到筛选到所需项目的新词典,则需要投影两个级别的词典,如下所示:
var query = _dicDictionaryThread.Select(o => new {o.Key, Value = o.Value
.Where(y=>y.Value.Level > x)
.ToDictionary(y => y.Key, y => y.Value)})
.Where(o => o.Value.Any())
.ToDictionary(o => o.Key, o => o.Value);
如果你能轻松理解这一点并向其他人解释,那就去做吧,否则只使用传统的循环 - 你不会从 Linq 获得任何性能提升,而且可能需要更长的时间来破译。