Следующее выполняется, но во время выполнения выбрасывается исключение. Я пытаюсь сделать класс PersonWithAge классу Person. Как мне это сделать и какова работа?Включить/конвертировать IEnumerable <T> в IEnumerable <U>?
class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
class PersonWithAge
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main(string[] args)
{
IEnumerable<PersonWithAge> pwa = new List<PersonWithAge>
{
new PersonWithAge {Id = 1, Name = "name1", Age = 23},
new PersonWithAge {Id = 2, Name = "name2", Age = 32}
};
IEnumerable<Person> p = pwa.Cast<Person>();
foreach (var i in p)
{
Console.WriteLine(i.Name);
}
}
}
EDIT: Кстати PersonWithAge всегда будет содержать то же свойство, как человек плюс несколько больше.
EDIT 2 Извините, ребята, но я должен был сделать это немного яснее, скажем, что у меня есть два представления db в базе данных, содержащей одни и те же столбцы, но в представлении 2 содержится 1 дополнительное поле. Мои объекты представления модели генерируются инструментом, который имитирует представления базы данных. У меня есть частичное представление MVC, которое наследуется от одного из объектов класса, но у меня есть несколько способов захвата данных ...
Не уверен, что это помогает, но это означает, что я не могу наследовать personWithAge от человека.
Выбор способа может быть направлением, однако я ожидаю штраф, так как это может быть нелегким способом. – Rippo