1、首先我们新建一个form窗体,窗体中有如下的控件,主要的是listbox,其他的button按钮可以忽略。
2、下面我们通过如下的方式给盟敢势袂listbox1控件进行赋值操作,注意我们这里运用lambda获得了一个匿名对象,这样listbox1中存的项其实就是多个匿名对象。
3、接下来就是我们要重点讲解的了,我们要遍历一下listBox1中的每一项内容,输出其name与id的值,你肯定会如下操作,但是却不成功。
4、那该怎么获取那?当然用反射了,请看下图,我这里用反射获取了匿名对象
5、接下来你运行输出的时候却发现输出的并不是name的值而是name字符串,这也是反射的不一样的地方
6、那么如何获取值那?很简单,调用property中的getvalue方法就行了,具体的书写方式请看下图:
7、综上所述,C#访问匿名对象我们常用反射机制,通过GetProperties来获取所有的匿名项,然后通过GetValue获取值即可。是不是很简单啊!