Linq基本语法

在向大家详细介绍Linq基本语法之前,首先让大家了解下调用Enumberalbe扩展函数,然后全面介绍Linq基本语法。

Linq基本语法

var result = from item in container orderby value ascending/descending select item; 1、获取全部记录

var allCars = from c in myCars select c; 2、只获取字段名称

var names = from c in myCars select c.PetName; 这里names就是隐式类型的变量。

3、使用Enumerable.Distinct<T>()

var makes = (from c in myCars select c.Make).Distinct<string>(); 4、即可以在定义的时候调用Enumberalbe扩展函数

var names = from c in myCars select c.PetName;  foreach (var n in names)  {  Console.WriteLine("Name: {0}", n);  } 也可以在兼容的数组类型上调用

var makes = from c in myCars select c.Make;  Console.WriteLine("Distinct makes:");  foreach (var m in makes.Distinct<string>())  {  Console.WriteLine("Make: {0}", m);  } // Now get only the BMWs.  var onlyBMWs = from c in myCars where c.Make == "BMW" select c; // Get BMWs going at least 100 mph.  var onlyFastBMWs = from c in myCars  where c.Make == "BMW" && c.Speed >= 100  select c; 5、生成新的数据类型(投影)

var makesColors = from c in myCars select new {c.Make, c.Color}; 6、Reverse<T>()

或者

var subset = (from c in myCars select c).Reverse<Car>();  foreach (Car c in subset)  {  Console.WriteLine("{0} is going {1} MPH", c.PetName, c.Speed);  } 7、排序

默认是ascending

// Order all the cars by PetName.  var subset = from c in myCars orderby c.PetName select c;  // Now find the cars that are going less than 55 mph,  // and order by descending PetName  subset = from c in myCars  where c.Speed > 55 orderby c.PetName descending select c; 默认顺序时也可以明确指明

var subset = from c in myCars  orderby c.PetName ascending select c; 8、Enumerable.Except()
两个IEnumerable<T>兼容的对象的差集

static void GetDiff()  {  List<string> myCars = new List<String> { "Yugo", "Aztec", "BMW"};  List<string> yourCars = new List<String> { "BMW", "Saab", "Aztec" };  var carDiff =(from c in myCars select c)  .Except(from c2 in yourCars select c2);  Console.WriteLine("Here is what you don't have, but I do:");  foreach (string s in carDiff)  Console.WriteLine(s); // Prints Yugo.  } 以上介绍Linq基本语法


新闻来自: 新客网(www.xker.com) 详文参考:http://www.xker.com/page/e2009/0914/78230.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值