Приведение типов - C# (181076)

Узнай цену своей работы

Формулировка задачи:

Имеется
List<ObjectContainer<AlmanacGps>>
Нужно привести его к List<ObjectContainer<IAlmanac>> Тут ковариация не сработает поскольку ObjectContainer - класс а не интерфейс. Поэтому я пока вижу решение создавать новый List и в него добавлять объекты ObjectContainer<IAlmanac> созданные на основе ObjectContainer<AlmanacGps> . Может есть что поизящней и желательно с LINQ
public class ObjectContainer<T> where T : class
    {
        public T Object { get; set; }
    }
 
    public interface IAlmanac
    {
        //int KaAlm { get; set; }      
        DateTime TimeFullUtc { get; set; }
    }
    public class AlmanacGps : IAlmanac
    {
        public DateTime TimeFullUtc { get; set; }
    }
    public class AlmanacGlonas : IAlmanac
    {
        public DateTime TimeFullUtc { get; set; }
    }

Решение задачи: «Приведение типов»

textual
Листинг программы
List<ObjectContainer<AlmanacGps>> source = ...
List<ObjectContainer<IAlmanac>> dest = source.Select(e => new ObjectContainer<IAlmanac> { Object = e.Object }).ToList();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5