如何用C#中的数组和DTO做漂亮的代码块



我最近在NodeJS之后切换到C#,我感兴趣的问题是,是否可以漂亮而正确地格式化此代码块,以减少不必要的工作量?

var user = userService.GetById(id);
if (user == null)
return null;
var roles = new List<RoleDTO>();
foreach (var u in user.Roles)
{
roles.Add(new RoleDTO
{
Id = u.Role.Id,
Name = u.Role.Name,
Slug = u.Role.Slug
});
}
return new UserDTO
{
Id = user.Id,
Login = user.Login,
Name = user.Name,
Roles = roles
};

您的代码IMHO已经很短了。我能想到的唯一额外的事情是在List<RoleDTO>的构造函数中用LINQ表达式替换foreach,而不使用变量,如下所示:

var user = userService.GetById(id);
if (user == null)
return null;
return new UserDTO
{
Id = user.Id,
Login = user.Login,
Name = user.Name,
Roles = new List<RoleDTO>
(
from u in user.Roles
select new RoleDTO
{
Id = u.Role.Id,
Name = u.Role.Name,
Slug = u.Role.Slug
}
)
};

最新更新