如何从ICollection <t>返回IList <t>

时间:2015-10-24 22:22:44

标签: c# generics collections task-parallel-library

我有以下方法:

    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.Roles类型为ICollection<IAppRole>的情况,上述方法会返回IList<string>的类型。我无法进行转换,然后找到正确的语法来进行转换。

1 个答案:

答案 0 :(得分:1)

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

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

要返回任务:

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