Приведение типов - 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();

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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