Из списка объектов выбрать только одно поле?
У меня есть список объектов Human, у данных объектов есть поля Name и Age.
Я получаю список всех полей у объекта Human и по каждому полю я должен получить все значения из списка Humans. Как это возможно сделать? Пытался что-то сделать по примерам из гугла, но пока безрезультатно.
List<Human> Humans = getAllHumans();
var properties = typeof(Human).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var property in properties)
{
string NameField = property.Name;
// Здесь надо получить список значений по каждому NameField из списка Humans.
}
Ответы (1 шт):
Автор решения: Aarnihauta
→ Ссылка
Будет что-то типа такого. Для полей просто изменить на GetFields
List<Human> humans = getAllHumans()
foreach(var human in humans)
{
var properties = typeof(Human)
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Select(x => new KeyValuePair<string, object>(x.Name, x.GetValue(human)))
}