首页 > 代码库 > LINQ基础
LINQ基础
1 var i1 = 6; 2 //C#中的var是一个类型的简写,是根据右边进行类型的“推导” 3 //可以根据6推断出来var代表int,只是编译器自动帮我们把var换成int 4 5 //i1 = "bbbb"; //不可以 6 7 object o1 = 6; 8 o1 = "bbb";//可以,object可以指向任意类型 9 10 11 //var专门为匿名类型而生12 var p = new { Age = 5, Name = "tom" };//声明匿名类型的两个属性13 //并且创建匿名类型的一个对象,然后为对象的各个属性赋值(通过构造函数)14 Console.WriteLine(p.Name);//p是匿名类型的对象15 16 //成员一致的匿名类型会重用17 //编译器只生成了两个类,p和p1共用一个,p2单独用一个18 var p1 = new { Age = 6, Name = "jim" };19 20 //由于参数类型不一致21 var p2 = new { Father = "tom", Mother = "lucy" };22 23 24 object p3 = new { Father = "tom", Mother = "lucy" };//也可以,object可以指向任意类型25 //p3.Mother; //这样写不可以,因为不知道p3.Mother是什么类型。
=========================进化前:var为匿名函数服务,匿名函数为linq服务==============
1 int[] values = { 3, 5, 9, 8, 2, 20, -5, -9, 306 }; 2 3 //过滤掉负数,把数组排序,然后元素两边加[]输出 4 5 var e1 = values.Where(i => i > 0).OrderBy(i => i) 6 .Select(i => "[" + i + "]"); 7 foreach (var i in e1) 8 { 9 Console.WriteLine(i);10 }
==============================进化:微软V5,效率更高更清晰====================
///编译器玩花招 //执行顺序是从上到下 var e1 = from i in values//foreach(int i in values) where i > 0 orderby i descending//降序排列 select "[" + i + "]"; //基于类型推断的考虑,select在最后,from在最前 foreach (var i in e1) { Console.WriteLine(i); }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。