[英]c# `dictionary of dictionary` query
有人可以告诉我正确的查询方法:
dictionary of dictionary
Dictionary<int, Dictionary<Guid, AutoStopWatchAndLog>> _dicDictionaryThread
我要寻找的是来自第一个级别的任何内容,然后来自第二个级别小于x的任何项目
dics的下面是: 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获得任何性能提升,并且可能需要花费更长的时间才能解密。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.