我正在使用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。我只需要提取变量/类型。
答案 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();