我如何从 ICollection<T> Return IList<T>

How Do I Return IList<T> From ICollection<T>

我有以下方法:

    public Task<IList<string>> GetRolesAsync(AppUser user)
    {
        if(user.Roles == null)
        {
            // TODO: Load roles
        }

            //Not sure return syntax to return user.Roles as IList<string>
            return Task.FromResult<List<string>>(???);
    }

其中 user.RolesICollection<IAppRole> 方法上面 return 类型 IList<string> 的方法。我在进行转换然后找到正确的语法来制作 return.

时遇到了问题

这会将角色列表转换为字符串列表:

user.Roles.Select(r => r.Name).ToList();

要return一个任务:

return Task.FromResult(user.Roles.Select(r => r.Name).ToList());