c# Linq 中为什么非要用var
来源:互联网 发布:淘宝怎么卖眼药水 编辑:程序博客网 时间:2024/05/17 08:33
因为Linq的query中的是不定类型,返回的是不定类型的指针,即不定类型的引用。在这种情况下,只能用var类型的变量存储这个不定类型的指针。var 声明的是 一个变量对象,即一个变量对象的引用(指针),我们一般以对象的引用(指针)来代表这个对象。
下面这段代码充分说明了var 对象是不定类型的引用。因为是不定类型的,所以什么类型的对象的引用都可以存。
using System;namespace VarUse{class Program{public static void Main(string[] args){int i = new int();//i 是int 对象(引用)char c = new char();//c 是char对象(引用)var v = i;//var 对象(引用)中可以存int对象(引用)v = c;//var 对象(引用)中也可以存char对象(应用)Console.Write("Press any key to continue . . . ");Console.ReadKey(true);}}}
var 对象(引用)中可以存不定对象的引用。也可以存不定类型的数组对象(引用)。下面这段代码说明了这一点
using System;namespace VarDemo{class Program {public static void Main(string[] args){int[] i = new int[10];var v1 = i;//var 对象(引用)中可以存整型数组对象( 引用).char[] c = new char[10];var v2 = c;//var 对象(引用)中可以存字符数组对象( 引用).Console.Write("Press any key to continue . . . ");Console.ReadKey(true);}}}那么,Linq中返回的不定类型的数组对象就可以存储在var对象里了。
using System;using System.Linq;namespace SimpleLinq{class Program{public static void Main(string[] args){//following code block builds an array //consisting of random digits from inclusive zero//to exclusive one hundredRandom r = new Random();int n;n = 100;int[] array = new int[n];int i;for(i=0;i<n;i++)array[i] = r.Next(100);//select the numbers which are greater than 50 out.var nums = from element in array//as you see,where(element>50)//var object(reference) reserves the array object(reference) select element;//that contains the selected numbers; //in Linq,the returned array is recognized as indefinite type.//end selectforeach( int num in nums)Console.WriteLine(num);Console.Write("Press any key to continue . . . ");Console.ReadKey(true);}}}
0 0
- c# Linq 中为什么非要用var
- iOS中为什么非要用runtime才能在分类中扩展属性呢
- C#中var关键字怎么用
- C#中var关键字
- C#中var关键字
- C#中var关键字
- C#中var关键字
- C#中var关键字
- C#中var关键字
- C#中var关键字
- C#中var关键字用法
- C#中var关键字用法
- C#中var用法详解
- Linq var 转为List
- C#中linq 分组查询
- C# 中 Linq 操作 DataTable
- C#中Linq的使用
- 网址转向的方法多了,为什么非要用301转向?
- Linux下Nginx、MySQL、PHP5、phpMyAdmin安装与配置
- 蓝桥杯 基础练习 龟兔赛跑预测
- postgreSql 判断表不存在而创建表
- 【9407】加法表
- ZCMU—1605
- c# Linq 中为什么非要用var
- [hihocoder1015]补提交卡
- 第14周练习-1 数组大折腾(5)
- 欢迎使用CSDN-markdown编辑器
- Android 关于OOM的解决方案
- 第三十五讲项目4--贪财的富翁
- LoadRunner VuGen脚本增强之逻辑判断增强与事务
- 今天我们有1.25亿独立用户访问,只用了50毫秒——redis中setbit的使用
- itoa , atoi ,sprintf 的用法