g => g.Name == genre代表一个匿名函数。即这里向Single方法传入了一个方法类型的参数。
=>左边的g代表方法的参数,可以有多个,如(g,f) => ...,=>右边代表方法的返回值,
写全了是这样的:g => { return g.Name }。
里之所以能点出Name属性,是因为Single方法声明了这个方法类型参数的格式,比如:
Func<Student, bool>
这个方法类型指示输入参数是Student类型,返回值是bool类型。对应于上面的方法参数值,
那么g代表Student对象,g可以随便命名,但这里总是代表Student对象,比如可以写成:
Single(stu => stu.Name == ”genre“);
在Single方法内部,它就可以调用我们传入的这个方法,它传入Student类型参数,
那么就会返回一个bool值来代表该对象是否满足Name属性等于"genre"这个条件,以此在遍历Student列表的时候过滤数据。