如何在 C# 中使用数组和 DTO 编写漂亮的代码块?
How to do pretty block of code with Arrays and DTO in C#?
我最近在 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
};
恕我直言,您的代码已经很短了。我能想到的唯一额外的事情是在 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
}
)
};
我最近在 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
};
恕我直言,您的代码已经很短了。我能想到的唯一额外的事情是在 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
}
)
};