C#高级编程六十八天
LINQ也就是Language Interrated Query的缩写,怎么一个缩写法我也不明白,即语言集成查询,是微软在.NET3.5中提出的一项新技术,LINQ主要包含四个组件,下面看一下LINQ的一个架构图:
简单的介绍一些四个组件:
1.Linq to SQL 组件----可以查询基于关于数据的数据(微软本身只是实现了对SQL Server的查询,可以对数据库中的数据进行查询,修改,插入删除,排序等操作)
2.LINQ to Dataset组件----可以查询Dataset对象中的数据,并对数据进行增删改查的操作
3.LINQ to Objects组件----可以查询IEnumerable或IEnumerable<T>集合
4.LINQ to XML 组件----可以查询和操作XML文件,比Xpath操作和XML更加方便
二.使用LINQ的好处是啥
上面说到LINQ的四个组件,分笔试对不同数据进行增删改查的一些操作,然而以前也是有相关技术对这些数据进行操作,(例如,对数据库的操作,之前有ADO.NET对其进行支持,对XML的操作,之前也可以Xpath来操作XML文件等),此时应该大家会有个疑问,为什么以前都有相关技术对其支持,我们还要学习LINQ呢,对于这个疑问答案很简单,Linq 使操作这些数据源更加简单,方便和易于理解,之前的技术操作起来过于繁琐,所以微软也有上进心啊,希望可以做的更好啊,所以就在C# 3中提出了Linq来方便大家操作这些数据源,,下面通过对比来说明Linq是如何简单方便:
2.1查询集合中的数据
之前我们查询集合中的数据一般会使用for或者foreach语句来进行查询,而LINQ实用查询表达式来进行查询,LINQ表达式比之前用for或foreach的方式更加简洁,比较容易添加筛选条件,下面就具体看看两者方式的比较代码(假设一个场景----返回集合中序号为偶数的元素)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LINQ小结
{
class Program
{
static void Main(string[] args)
{
OldQuery();
LinqQuery();
Console.ReadKey();
}
//使用foreach返回集合中序号为偶数的元素
public static void OldQuery()
{
Console.WriteLine("使用老方法来对集合对象查询,查询结果为:");
//初始化查询的集合
List<string> collection = new List<string>();
for (int i = 0; i < 10; i++)
{
collection.Add("A"+i.ToString());
}
//创建保存查询结果的集合
List<string> queryResults = new List<string>();
foreach (var item in collection)
{
//获取元素序号
int index = int.Parse(item.Substring(1));
//查询序号为偶数的元素
if (index%2==0)
{
queryResults.Add(item);
}
}
foreach (var item in queryResults)
{
Console.WriteLine(item);
}
}
//使用LINQ返回集合中序号为偶数的元素
public static void LinqQuery()
{
Console.WriteLine("使用Linq方法来对集合对象查询,查询结果为:");
//初始化查询的数据
List<string> collection = new List<string>();
for (int i = 0; i < 10; i++)
{
collection.Add("A" + i.ToString());
}
//创建查询表达式来获得序号为偶数的元素
var queryResults = from s in collection
let index = int.Parse(s.Substring(1))
where index % 2 == 0
select s;
// 输出查询结果
foreach (string s in queryResults)
{
Console.WriteLine(s);
}
}
}
}
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68911.html
- 上一篇:Qt创建窗体的过程
- 下一篇:windows下解决快捷键失效的万能方法