这篇文章介绍了LINQ投影操作符Select与限制操作符where,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
一、什么是LINQ?它可以用来做什么
语言集成查询(Language Integrated Query,LINQ)是一系列标准查询操作符的集合,这些操作符几乎对每一种数据源的导航、过滤和执行操作都提供了底层的基本查询架构。
LINQ可查询的数据源包括XML(可使用LINQ TO XML)、关系数据(使用LINQ TO SQL,及先前的DLINQ)、ADO.NET DataSet(使用LINQ TO DataSet),以及内存中的数据。
二、投影操作符:Select
Select操作符对单个序列或集合中的值进行投影。所谓投影,比如有一个数据集,想用LINQ语法去操作数据集,会写一个LINQ的表达式,表达式会把数据集合中的数
据简单的投影到一个变量中,并且可以通过这个变量去筛选数据。
示例:
Employees类
public class Employees
{
public Guid Id { get; set; }
public string Name { get; set; }
public int Sex { get; set; }
public string CompanyName { get; set; }
}
class Program
{
static void Main(string[] args)
{
//使用集合初始化器给集合赋值
List<Employees> emp = new List<Employees>
{
new Employees(){Id=Guid.NewGuid(),Name="张三",Sex=0,CompanyName="xx技术有限公司"},
new Employees(){Id=Guid.NewGuid(),Name="李四",Sex=0,CompanyName="xx培训"},
new Employees(){Id=Guid.NewGuid(),Name="王五",Sex=0,CompanyName="xx集团"}
};
//查询语法:不能省略最后的select
var query = (from p in emp where p.Name.StartsWith("王") select p).FirstOrDefault();
//查询方法:设计到Lambda表达式,全部返回 可以省略最后的select 延迟加载
var query1 = emp.Where(p => p.Name.StartsWith("王")).Select(e => new { e.Name,e.CompanyName});
//查询方法:返回匿名类
var query2 = emp.Where(p => p.Name.StartsWith("王")).Select(p => p);
foreach (var item in query1)
{
Console.WriteLine(item.Name);
}
Console.ReadKey();
}
}
三、限制操作符where
where是限制操作符,它将过滤标准应用在序列上,按照提供的逻辑对序列中的数据进行过滤。
where操作符不启动查询的执行。当开始对序列进行遍历时才开始执行,此时过滤条件将被应用到查询中。
示例:
//where限制操作符:使用延迟加载
var q = teachers.SelectMany(p => p.Students).Where(s => s.Score < 60).Select(a => new { name = a.Name });
foreach (var item in q)
{
Console.WriteLine("姓名:"+item.name);
}
到此这篇关于LINQ投影操作符Select与限制操作符where的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持得得之家。
本文标题为:LINQ投影操作符Select与限制操作符where介绍


基础教程推荐
- C#中 Json 序列化去掉null值的方法 2022-11-18
- C#中的Linq to JSON操作详解 2023-06-08
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C# 解析XML和反序列化的示例 2023-04-14
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- Unity shader实现高斯模糊效果 2023-01-16
- C#调用摄像头实现拍照功能的示例代码 2023-03-09
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- 实例详解C#实现http不同方法的请求 2022-12-26