[英]Lambda expression to grab all values inside a Dictionary
我有一个LINQ查询,它返回一个Dictionary中的所有值,条件是:
var apps =
from entry in shape.Decorators
where entry.Value == DecoratorLayoutStyle.App
select entry.Key;
shape.Decorators是一个
Dictionary<Shape, DecoratorLayoutStyle>
是否有更简洁的东西,和/或我可以使用lambdas或其他东西的组合?
var apps = shape.Decorators
.Where(x=>x.Value == DecoratorLayoutStyle.App)
.Select(x=>x.Key);
我觉得你的一切都很好。
这看起来很简洁,我想你可以使用扩展函数而不是from / select linq语法,但这不会太大。
更加咄咄逼人,我不确定你是否想要更加温和。 当前格式非常易读,并且清楚地记录了您正在尝试执行的操作。
var apps = shape.Decorators
.Where(e => e.Value == DecoratorLayoutStyle.App)
.Select(e => e.Key);
你觉得这更老了吗?
我个人更喜欢查询语法,当我有多个LINQ运算符时,我使用的所有运算符都可以转换为它。
var apps = Shape.Decorators.Where(x => x.Value == DecoratorLayoutStyle.App)
.Select(x => x.Key);
只是为了与众不同。
var apps = shape.Decorators.Keys
.Where(k => shape.Decorators[k] == DecoratorLayoutStyle.App);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.