如何在 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
        }
    )
};