我可以得到任何有lambdas的terser吗?(Can I get any terser with lambdas?)
这些天我用lambdas写了很多代码。
return _schema.GetAll<Node>() .ToList() .FindAll(node => node.Type == NodeType.Unmanaged) .Cast<Shape>() .ToList();注意:GetAll()返回一个IList。
我可以得到任何表情吗?
I'm writing a lot of code with lambdas these days.
return _schema.GetAll<Node>() .ToList() .FindAll(node => node.Type == NodeType.Unmanaged) .Cast<Shape>() .ToList();Note: GetAll() returns an IList.
Can i get any terser?
最满意答案
您可以使用Where替换ToList后跟FindAll。 在简单语句中使用lambda参数的流行标准是单个字符。 'node'可以重命名为'n'。 您的方法可以返回IEnumerable而不是IList。 然后,方法调用者可以根据需要调用ToList。后:
return _schema.GetAll<Node>().Where(n => n.Type == NodeType.Unmanaged).Cast<Shape>(); You could replace the ToList followed by a FindAll with a Where. A popular standard with lambda parameters in simple statements is a single character. 'node' could be renamed to just 'n'. Your method could return an IEnumerable instead of a IList. The method caller could then call ToList if required.After:
return _schema.GetAll<Node>().Where(n => n.Type == NodeType.Unmanaged).Cast<Shape>();更多推荐
发布评论