Сопоставить свойства объекта с массивом, используя C # - PullRequest
1 голос
/ 19 декабря 2011

Можно ли это сделать в C#?

У меня есть POCO объект, вот определение:

public class Human
{
    public string Name{get;set;}
    public int Age{get;set;}
    public int Weight{get;set;}
}

Я хотел бы отобразить свойства объектаHuman в строковый массив.

Примерно так:

Human hObj = new Human{Name="Xi",Age=16,Weight=50};

Или я могу иметь List<Human>:

string [] props = new string [COUNT OF hObj PROPERTIES];

foreach(var prop in hObj PROPERTIES)
{
    props["NAME OF PROPERTIES"] = hObj PROPERTIES VALUE    
}

Ответы [ 2 ]

2 голосов
/ 19 декабря 2011

Это должно быть примерно так:

var props = new Dictionary<string, object>();
foreach(var prop in hObj.GetType().GetProperties(BindingFlags.Public|BindingFlags.Instance);)
{
    props.Add(prop.Name, prop.GetValue(hObj, null));
}

см. здесь для получения информации о GetProperties и здесь для PropertyInfo

0 голосов
/ 19 декабря 2011

Вы можете использовать отражение, чтобы получить свойства и значения объекта:

var properties = typeof(Human).GetProperties();

IList<KeyValuePair<string, object>> propertyValues = new List<KeyValuePair<string, object>>();

foreach (var propertyInfo in properties)
{
    propertyValues.Add(propertyInfo.Name, propertyInfo.GetValue(oneHuman));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...