2021-07-28 C#中Linq查询 IEnumberable接的口使用

本文介绍了.NET中IEnumerable和IEnumerable<T>接口的重要性,它们为非泛型集合提供迭代支持。此外,文章还探讨了LINQ(语言集成查询)的基本原理,包括数据源获取、查询创建和执行。LINQ要求数据源实现IEnumerable或IEnumerable<T>接口,通过延迟执行确保效率。文中以一个LINQ查询示例说明了其工作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IEnumerable 是可枚举的所有非泛型集合的基接口公开枚举数,该枚举数支持在非泛型集合上进行简单迭代。
IEnumerable和IEnumerable接口在.NET中是非常重要的接口,它允许开发人员定义foreach语句功能的实现并支持非泛型方法的简单的迭代,IEnumerable和IEnumerable接口是.NET Framework中最基本的集合访问器。它定义了一组扩展方法,用来对数据集合中的元素进行遍历、过滤、排序、搜索等操作。
IEnumerable接口是非常的简单,只包含一个抽象的方法Get IEnumerator(T),它返回一个可用于循环访问集合的IEnumerator对象。

LINQ的全称是Language Integrated Query,
中文译成“语言集成查询”。LINQ作为一种查询技术,首先要解决数据源的封装,大致使用了三大组件来实现这个封装,分别是LINQ to Object、LINQ to ADO.NET、LINQ to XML。
LINQ的查询由3基本部分组成:获取数据源,创建查询,执行查询

            // 1,获取数据源
            List<int> numbers = new List<int>() { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

            // 2,创建查询
            var numQuery = from num in numbers
                           where num % 2 == 0
                           select num;

            // 3,执行查询
            foreach (var num in numQuery)
            {
                Console.WriteLine("{0,1}", num);
            }

在 LINQ 中,查询的执行与查询本身截然不同;换句话说,如果只是创建查询变量,则不会检索任何数据。

**Linq的数据源要求必须实现IEnumerable或IEnumerable接口,**数组隐式支持这个接口。numQuery叫做查询变量,它存储了一个查询表达式。注意,声明查询变量并不会执行查询,真正的执行查询延迟到了foreach语句中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值