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

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

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

Имеется
Листинг программы
  1. List<ObjectContainer<AlmanacGps>>
Нужно привести его к List<ObjectContainer<IAlmanac>> Тут ковариация не сработает поскольку ObjectContainer - класс а не интерфейс. Поэтому я пока вижу решение создавать новый List и в него добавлять объекты ObjectContainer<IAlmanac> созданные на основе ObjectContainer<AlmanacGps> . Может есть что поизящней и желательно с LINQ
Листинг программы
  1. public class ObjectContainer<T> where T : class
  2. {
  3. public T Object { get; set; }
  4. }
  5. public interface IAlmanac
  6. {
  7. //int KaAlm { get; set; }
  8. DateTime TimeFullUtc { get; set; }
  9. }
  10. public class AlmanacGps : IAlmanac
  11. {
  12. public DateTime TimeFullUtc { get; set; }
  13. }
  14. public class AlmanacGlonas : IAlmanac
  15. {
  16. public DateTime TimeFullUtc { get; set; }
  17. }

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут