Не удается неявно преобразовать тип 'System.Collections.Generi c .List < > 'to' System.Collections.Generi c .IEnumerable <string>' - PullRequest
0 голосов
/ 17 апреля 2020

Я хочу вернуть список строк в функции:

private async Task<IEnumerable<string>> GetAccessLevels(Guid roleId)
{
    return await AccessLevels.Where(x => x.RoleId == roleId).Select(x=>new {x.Access }).ToListAsync();
}

Но мне показывается эта ошибка:

Не удается неявно преобразовать тип 'System.Collections.Generic.List<<anonymous type: string Access>>' в 'System.Collections.Generic.IEnumerable<string>'. Существует явное преобразование (вам не хватает приведения?)

Это моя модель:

public Guid RoleId { get; set; }
public string Access { get ; set; }

Как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 17 апреля 2020

Я думаю, вам просто нужно сделать следующее:

private async Task<IEnumerable<string>> GetAccessLevels(Guid roleId)
{
    return await AccessLevels.Where(x => x.RoleId == roleId).Select(x=> x.Access).ToListAsync();
}

Нет необходимости создавать анонимный объект в Select.

1 голос
/ 17 апреля 2020

Просто измените это:

Select(x => new { x.Access })

На Это:

Select(x => x.Access)

Причина в том, что new заставляет ваш запрос вернуть IEnumerable из Anonymous types, а вам нужно IEnumerable из Strings.

...