在Linq写法的查询当中 我们时常需要定义一个数据类型来接收数据
怎么定义数据类型也是有学问的
数据类型也不能乱用 那么用Linq来接收数据类型有一个小技巧 那就是利用var来接收
C#匿名类型使用关键字var声明 并使用new关键字初始化一个匿名类型
我们可以在Linq中用var接收数据变量 这个var类型和我们常用JS中的var类型有点类似但又有点不一样 这个var叫做匿名数据类型
顾名思义 C#中的匿名类型是没有名称的类型 或者你可以在不定义它们的情况下创建新的类型
它是一个临时数据类型 基于对象初始化器中的数据来推断
或者换句话说 匿名类型提供了一种有效的方法 可以将一组只读对象组合到一个对象中,而不需要显示定义这个数据类型
匿名类型的类型由编译器根据分配给其属性的值自动生成
这个匿名数据类型可以把任何数据类型往里面扔
也就是说C#的所有数据类型都可以往里面扔 这个就和JS里面很类似
但是它又不是弱数据类型 为什么呢?它在编译的时候 C#是会把它翻译成具体的数据类型 比如它是int类型的 例如这样
如果是这样它是不是就是int类型 它编译的时候就会自动帮你改成int 它会自动把var替换成这个i变量应有的类型
它只是个匿名数据类型而已 匿名的
只是我们看不到数据类型而已
这一个数据类型不建议我们大家在平时使用
最好只在Linq中使用 声明整数该是int还是int 该是字符串还是字符串 我们的数据该是什么类型就写成什么类型 不要全部写成var 虽然都没错
但是方便我们阅读代码 不好判断它的数据类型
一定不要所有的数据类型都使用var 虽然写着是简单 都不用考虑数据类型了 但是也不利于我们代码的查看 往后要修改代码的时候也会比较的麻烦 所以只建议大家在linq中使用