我有以下代码行:
Project = x.Project == null ? null : new Model { ... }
Run Code Online (Sandbox Code Playgroud)
在C#6中,有没有办法缩短这段代码?
我一直在看几个?例子但是对于这种情况我找不到更短的解决方案......
Sco*_*ain 10
原样你的代码尽可能短.但是,如果该类Project是基于public Model ToModel(...) { }你有一个方法,你可以做
Project = x.Project?.ToModel(...);
Run Code Online (Sandbox Code Playgroud)
更新:正如JonSkeet刚刚提到的,你也可以制作.ToModel(一个扩展方法.
public static class ExtensionMethods
{
public static Model ToModel(this Project p, ...)
{
return new Model { ... };
}
}
Run Code Online (Sandbox Code Playgroud)
语法仍然是
Project = x.Project?.ToModel(...);
Run Code Online (Sandbox Code Playgroud)