处理类似的事情时,List<string>您可以写下以下内容:
list.ForEach(x => Console.WriteLine(x));
Run Code Online (Sandbox Code Playgroud)
或者您可以使用方法组执行相同的操作:
list.ForEach(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)
我更喜欢第二行代码,因为它对我来说看起来更干净,但这有什么好处吗?
使用linq我可以创建这样的查询
XElement.Elements("...").Select(x=> useX(x));
Run Code Online (Sandbox Code Playgroud)
现在因为x只创建一个包装器Action而useX的参数是XElement,你可以像这样使用它:
XElement.Elements("...").Select(useX);
Run Code Online (Sandbox Code Playgroud)
但是当我有一个具有匹配类型的构造函数的类型,即MyClass(XElement元素)时,我必须使用:
XElement.Elements("...").Select(x=> new MyClass(x));
Run Code Online (Sandbox Code Playgroud)
我的问题:有没有办法以上面的方式缩短对象的构造,但是有一个构造函数?我想象过这样的事情:
XElement.Elements("...").Select(MyClass);
Run Code Online (Sandbox Code Playgroud)