C#学习笔记(6)

摘要:
当我们编写具有存储数据功能的程序时,我们总是要处理数据库,因此LINQ应运而生。LINQ是一组C#和VB语言扩展,它允许编写C#或VB代码以与查询数据库相同的方式操作内存数据。

在我们编写一个带有存储数据的功能的程序的时候,总免不了要与数据库打交道,于是LINQ(语言集成查询)就应运而生了。LINQ是一组C#和VB的语言拓展,它允许编写C#或者VB代码以查询数据库相同的方式操作内存数据。

与一般的SQL语言不同的,用户在使用LINQ语言的时候可以自定义数据类型,这样就为程序员们提供了很大的便利,LINQ中包含40多个查询操作,其基本语法与SQL相同

from ...
where ...
select ...

唯一与SQL语言不同的要数select语句的位置了,LINQ之所以把from语句放在最前面,是为了方便让编译器识别select语句中的数据的类型,这样才能使IDE中的智能感知功能更好的发挥作用。

现在来举例说明一下LINQ的用法

    public class Date
    {
        public int day { get; set; }
        public int month { get; set; }
        public int year { get; set; }
        public override string ToString()
        {
            return string.Format("{0} {1} {2}",
                        year, month, day);
        }

    }

创建一个Date类来存储日期

        private  static  List<Date> CreateDateList()
        {
           List<Date> date = new List<Date>
           {
                  new Date { year = 2015,month = 4,
                                                day = 27},
                  new Date { year = 2000, month = 7,
                                                day = 23 },
                  new Date { year = 1900, month = 12,
                                                day = 31 },
                  new Date { year = 2007, month = 1,
                                                day = 1 },
                  new Date { year = 2055, month = 2,
                                                day = 28 }
            };
            return date;
         }

创建若干日期用于查询

我们从最简单的查询开始,查询所有的Date类型的数据

 List<Date> date =Date.CreateDateList();
IEnumerable<Date> result =  from  dt in date
select dt;
foreach (Date d in result)
{    Console.WriteLine(d.ToString());}

输出结果如下

C#学习笔记(6)第1张

 现在我们来加上where语句,选择year==2007的date数据

List<Date> date =Date.CreateDateList();
IEnumerable<Date> result =  from  dt in date
where  dt.year == 2007 
select dt;
foreach (Date d in result)
{    Console.WriteLine(d.ToString());}

C#学习笔记(6)第2张

现在我们再来做一个小的修改

              List<Date> date =Date.CreateDateList();
              IEnumerable<Date> result =  from  dt in date
              where  dt.year == 2007 
              select dt;
              Console.WriteLine("year == 2007");
              foreach (Date d in result)
              {    Console.WriteLine(d.ToString());}
              date[1].year = 2007;
              Console.WriteLine("year == 2007 (take two)");
              foreach (Date d in result)
              {  Console.WriteLine(d.ToString());}

C#学习笔记(6)第3张

LINQ可以实时的修改查询结果,以应对内存总数据突然改变的情况,这也是LINQ的一大优势

 除此之外,我们还可以通过orderby命令进行排序操作

              List<Date> date =Date.CreateDateList();
              IEnumerable<Date> result =  from  dt in date
              orderby dt.year
              select dt;
              foreach (Date d in result)
              {    Console.WriteLine(d.ToString());}        

C#学习笔记(6)第4张

我们在orderby语句中加上descending实现降序排序

orderby dt.year descending

免责声明:文章转载自《C#学习笔记(6)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇STM32程序中使用printf打印中文字符乱码Android Verified Boot 2.0 AVB详解(基于Android P)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Elasticsearch(八)【NEST高级客户端--Mapping映射】

要使用NEST与Elasticsearch进行交互,我们需要能够将我们的解决方案中的POCO类型映射到存储在Elasticsearch中的反向索引中的JSON文档和字段。本节介绍NEST中可用的所有不同功能,使POCO和Elasticsearch变得轻而易举。 在Elasticsearch中显式映射文档对于为给定的问题域提供定制搜索解决方案至关重要。虽然E...

date-fns时间库的基本使用

在react中使用date-fns: import sub_days from 'date-fns/sub_days'; import start_of_week from 'date-fns/start_of_week'; import end_of_week from 'date-fns/end_of_week'; import start_of_...

mysql日期 武胜

CURDATE() 返回当前日期如1970-01-01 CURTIME() 返回当前时间如00:00:00 NOW() 返回当前日期时间如1970-01-01 00:00:00 DATE(合法日期时间) 获取日期如1970-01-01 EXTRACT(单位 FROM 合法日期时间) 将日期转为指定单位 select EXTRACT(YEAR FROM `...

Java:Date、Calendar、Timestamp的使用

一、Java.util.Date      该对象包含了年月日时分秒信息。具体使用如下代码: //String 转换为Date private static void dateDemo() throws ParseException{ String dateStr="2016-05-31 13:45:04";...

Linux系统时间和硬件时间设置

在linux系统中有两个时间,硬件时钟和系统时间,硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。 用date命令对系统时...

string.Format出现异常"输入的字符串格式有误"的解决方法

string.Format出现异常"输入的字符串格式有误"的解决方法 今天在做项目时,碰到一个很奇怪的问题,我使用string.Format居然报“输入的字符串格式有误”的错误,我调了很久,还是不对,不明白错 在哪里,后来还是google了一下,原来我在字符串中出现了"{"字符。而"{"字符若出现在string.Format中是必需转义的,也就是要用两...