从List中的Object获取变量列表

时间:2014-05-09 16:23:03

标签: c# list combobox

我正在使用WinForm或WPF(我相信)

我有一个List<Student> formStudents = new List<Student>();学生本身,是一个对象,我正在尝试使用我的对象学生拥有的所有“类型”或“变量”填充一个combox。

new Student() { StudentName = "James", Age = 25, Score = 57 };

对于上面这个例子,我会尝试用我的WinForm ComboBox填充值(StudentName,Age和Score - 然后我将搜索结果),如何从我的Object中检索这些属性,当它在一个清单?

我尝试过使用IntelliSense(猜测和检查),但到目前为止我没有运气。

编辑:仅供参考,我只显示部分代码,但我的学生对象都已填入列表中。我在学生表格上查了一个.Count。我只需要提取变量/类型。

2 个答案:

答案 0 :(得分:2)

using System.Reflection;  

var propertyInfos = typeof(Student).GetProperties();
var propnames = new List<string>();

foreach(var prop in propertyInfos){
    propnames.Add(prop.Name)
}

然后将propnames字符串列表绑定到组合框。

使用LINQ:

using System.Linq;
using System.Reflection;

var propertyInfos = typeof(Student).GetProperties();
var propnames = propertyInfos.Select(prop => prop.Name).ToList();

答案 1 :(得分:0)

这应该会有所帮助: C# Dynamically Get Variable Names and Values in a Class

在上面的案例中,他将结果传递到字典中。

http://msdn.microsoft.com/en-us/library/ch9714z3%28v=vs.110%29.aspx

在这里的示例中,他们将字段的名称推送到数组中。

FieldInfo[] myField = myType.GetFields();