Linq 介绍(一)

1、第一个Linq查询

新建控制台应用程序 FirstLinq 代码如下:

static void Main(string[] args)
        {
            string[] names = { "Anna","zheng","Sime","Jake","Smyth","Sallmall","Ruby","Hesi","fank","Single","Samban","Simiss"};

            var querys = from name in names where name.StartsWith("S") select name;
            foreach (var item in querys)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }

第一步,空间引用 using System.Linq ,VS软件已经做了,其中:

 var querys = from name in names where name.StartsWith("S") select name;

才是真正的 LINQ 查询语句;格式:from 变量名 in 集合对象 where 条件 select 变量名

1、LINQ 查询首先需要声明一个变量,这个变量通常用 var 关键字声明一个变量来完成的;

2、指定要查询的数据

from name in names

本例中的数据源是前面声明的字符串数组 names ,变量 name 是数据源中的某一元素代表,类似 foreach 语句后面的变量。

3、指定查询条件:where 句子

where name.StartsWith("S")

where句子是可选的,甚至可以忽略,但大多数情况下,都需要指定 where 来限制查询结果,因此 where 又称之为 LINQ 语句中的限制运算符。这里 name.StartsWith("S") 表示限制为以 S 开头的,你也可以限制成长度大于 6 的(where names.Length>6)或者字符中包含 a (where names.Contain("a"))。

4、选择元素: select 句子

select name

select 句子是必须的,这是为了指定结果元素中包含那些元素,select name 的意思就是把查询到的结果存到声明的变量 querys 中。

2、查询语法和方法语法

查询语法是 LINQ 中编写查询的首选,他更容易理解,最常见的查询使用起来也更简单,上面的例子使用的就是查询语法,但有时候查询语法实现不了,只能使用方法语法来实现,或者说方法与法更简单。如下,介绍上面案例使用方法语法查询的 LINQ 语句写法。

static void Main(string[] args)
        {
            string[] names = { "Anna","zheng","Sime","Jake","Smyth","Sallmall","Ruby","Hesi","fank","Single","Samban","Simiss"};

            Console.WriteLine("查询语法输出结果:");
            //查询语法
            var querys = from name in names where name.StartsWith("S") select name;
            foreach (var item in querys)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("方法语法输出结果:");
            //方法语法
            var querys2 = names.Where(n=>n.StartsWith("S"));
            foreach (var item in querys2)
            {
                Console.WriteLine(item);
            }
            Console.ReadLine();
        }

现在 LINQ 查询调用的就是 Where() 方法,而不是查询表达式。

3、查询结果排序

查询语句排序

 var querys = from name in names where name.StartsWith("S") orderby name select name;

和前面查询语句相同,只是增加了 orderby name ;

orderby name 和 where 一样,也是可选语句,orderby 默认升序(A 到 Z),但可以添加 descending 关键字以便降序(Z 到 A):

orderby name descending

按照姓名最后一个字母排序则是如下:

orderby name.Substring(name.Length-1)

方法语句排序

  var querys3 = names.OrderBy(name=>name).Where(n=>n.StartsWith("S"));

而逆排序可以使用 OrderByDescending 来实现。

var querys = names.OrderByDescending(name=>name).Where(n=>n.StartsWith("S"));

按照姓名最后一个字母排序如下:

  var querys = names.OrderBy(name=>name.Substring(name.Length-1)).Where(name => name.StartsWith("S"));

源代码下载  猛戳这里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌霜残雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值