C#入门系列 -- LINQ简析

举报
陈言必行 发表于 2022/03/19 13:57:38 2022/03/19
【摘要】 LINQ的功能什么是LINQ?Linq是在.NET Framework 3.5 之后的版本出现的.在程序中的数据和数据库的数据相反,保存在类对象或结构中的数据差异很大。没有通用的查询语言从数据结构中获取数据LINQ: 语言集成查询(Language Integrated Query)是一组用于C#和Visual Basic语言的扩展。它允许编写C#或VisualBasic代码以查询数据库相...

LINQ的功能

什么是LINQ?
Linq是在.NET Framework 3.5 之后的版本出现的.

在程序中的数据和数据库的数据相反,保存在类对象或结构
中的数据差异很大。没有通用的查询语言从数据结构中获取
数据

LINQ: 语言集成查询(Language Integrated Query)是一
组用于C#和Visual Basic语言的扩展。它允许编写C#或Visual
Basic代码以查询数据库相同的方式操作内存数据。

LINQ包含 DLinq 和 XLinq


LINQ的简单使用

使用时需引用Linq命名空间

System.Linq

查询一数组中大于等于60的元素,代码如下:

 int[] numberArr = new int[] { 100, 90, 80, 70, 60, 50, 40, 30, 20, 10 };
 //在scores表中查找大于等于60的元素
 IEnumerable<int> numRes = from num in numberArr where num >= 60 select num;
 foreach (int i in numRes)
 {
      Console.WriteLine(i);
 }

输出


LINQ的优点

  1. 无需复杂学习过程即可上手;
  2. 编写更少代码即可创建完整应用;
  3. 更快开发错误更少的应用程序;
  4. 无需求助奇怪的编程技巧就可合并数据源;
  5. 能够大幅减少过程控制语句的代码块,使代码的可读性和可维护性大幅提高;
  6. 任何对象或数据源都可以定制实现Linq适配器,为数据
    交互带来真正方便。

LINQ中的匿名类型

匿名类型借助==var==关键字进行创建,可以把它理解为类型占位符,它并不是C#中的一种基本类型。它能在你编写程序的时候,自动计算出等式右边的类型,而且支持智能感知。

var定义的可以认为是任意类型,你给他赋值是什么类型,他就是什么类型,
例如,下面这些语句都和合法的:

 var number = 15;
 var fo = 1.5f;
 var bo = false;            
 var arr = new[] { 1, 2, 3, 4 };
 // 自定义类型
 // var mycalss = new myCalss(); 

匿名类型成员必须使用成员赋值,简单名称或成员访问来声明
1111
匿名类型的创建语法:

  var person = new { Name = "Czhenya", Sex = "男" };

  Console.WriteLine(person.Name);
  Console.WriteLine(person.Sex);

输出
感觉可以理解为:有个Person类,他有个两个参数的重载构造函数(参数分别是:姓名,性别),这样就创建了一个person的实例,并且这个实例包含有姓名,性别的两个属性。

==使用匿名类型需要注意:
(1)匿名类型只能和局部变量配合使用,不能用于类成员;
(2)由于匿名类型没有名字,所以必须使用var关键词作为变
量类型==


当编译器遇到匿名类型的对象初始化时,创建了一个有名字的新类类型。

对于每一个成员初始化器,编译器推断其类型并在新的类中创建这个类型的私有变量,然后创建用于访问这个变量的读写属性。

如果编译器遇到了另一个具有相同参数名、相同引用类型名和相同顺序的匿名类型,它会重复这个类型并直接创建新的实例,而不会创建新的匿名类型。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。