Динамически получить свойство из функции выбора с помощью переменной - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь динамически получить все значения определенного свойства из всех экземпляров класса.Мне удалось сделать это с одним свойством

public class fighter
    {
        public string Name { get; set; }

        public double Height { get; set; }
    }

fighter[] roster[5] = new fighter();

string namearray = roster.Select(x => x.Name).ToArray();
int weightarray = roster.Select(x => x.Weight).ToArray();

Однако я хочу сослаться на свойство с переменной и поместить его в цикл, поэтому мне не нужна функция выбора для каждого свойства.Есть ли способ сделать это или любой другой метод, чтобы получить все значения свойства из всех объектов, где это может работать?

1 Ответ

0 голосов
/ 21 мая 2018
 class Program
{
    static void Main(string[] args)
    {
        stud stud = new stud() { id=10,name="test" };
        PropertyInfo[] propertyInfo;
        propertyInfo = typeof(stud).GetProperties(BindingFlags.Public|BindingFlags.Instance);
        foreach (var item in propertyInfo)
        {
            Console.WriteLine(item.Name + " : " + item.GetValue(stud));
        }
        Console.ReadLine();
    }
}
public class stud {
    public int id { get; set; }
    public string name { get; set; }
}

используйте следующий код, я создал класс propertyInfo из пространства имен System.Reflection, который позволяет получать имена свойств класса.после чего после того, как вы получите все имена свойств, можно получить доступ с помощью функции propertyinfo.GetValue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...