Извлекать данные из IList вместо IEnumerable (C #)

#c# #.net #list #ienumerable

#c# #.net #Список #ienumerable

Вопрос:

когда я получил:

 public interface Test
{
    IEnumerable<Guid> ModelIds { get; set; }
}
 

Затем в сервис у меня есть:

 public IEnumerable<Guid> Test
{
    get => m_data.ModelIds;
    set { m_data.ModelIds = value.ToList(); }
}
 

И затем я использую его как:

 abc.ModelIds = my_list.Select(x => x.Id);
 

Но мне нужно внести изменения в интерфейс:

 public interface Test
{
    IList<Guid> ModelIds { get; set; }
}
 

и служба реализации:

 public IList<Guid> Test
 

А теперь как взять идентификатор?

 abc.ModelIds = my_list.Select(x => x.Id);
 

ошибка CS0266: не удается неявно преобразовать тип ‘System.Коллекции.Общий.IEnumerable<System.Guid>’ в’систему.Коллекции.Общий.IList<System.Guid>’ . Существует явное преобразование (вам не хватает приведения?)

Комментарии:

1. Select(x => x.Id).ToList() ?

Ответ №1:

Я думаю, что проблема здесь.

 public IEnumerable<Guid> Test
{
   get => m_data.ModelIds;
   set { m_data.ModelIds = value.ToList(); }
}
 

Вместо .Для ToList() просто используйте m_data.ModelIds = значение;

Если он говорит, что проблема здесь.

 abc.ModelIds = my_list.Select(x => x.Id);
 

Попробуйте

  abc.ModelIds = my_list.Select(x => x.Id).ToList();