C# “字典的字典”查询



有人可以告诉我查询此内容的正确方法吗:

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 获得任何性能提升,而且可能需要更长的时间来破译。

最新更新