C# Enumerable 类
2015-07-30 13:10
387 查看
Enumerable 类
命名空间: System.Linq
提供一组用于查询实现 IEnumerable<T> 的对象的 static(在 Visual Basic 中为 Shared)方法。
该类中的方法提供标准查询运算符的实现,该运算符用于查询实现 IEnumerable<T> 的数据源。
标准查询运算符是通用方法,它们遵循 LINQ(LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。) 模式,使用它们可以在任何基于 .NET 的编程语言中表示数据的遍历、筛选和投影运算。
该类中的大多数方法被定义为扩展 IEnumerable<T> 的扩展方法。 这意味着可以像调用实现 IEnumerable<T> 的任意对象上的实例方法一样调用它们。
只有枚举查询对象时,返回一个值序列的查询所使用的方法才使用目标数据。 这就是延迟执行。 返回单一实例值的查询所使用的方法可立即执行和使用目标数据。
示例:
Enumerable 类中涉及各种方法在此就不一一列出了
参考: https://msdn.microsoft.com/zh-cn/library/system.linq.enumerable(v=vs.110).aspx
命名空间: System.Linq
提供一组用于查询实现 IEnumerable<T> 的对象的 static(在 Visual Basic 中为 Shared)方法。
该类中的方法提供标准查询运算符的实现,该运算符用于查询实现 IEnumerable<T> 的数据源。
标准查询运算符是通用方法,它们遵循 LINQ(LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。) 模式,使用它们可以在任何基于 .NET 的编程语言中表示数据的遍历、筛选和投影运算。
该类中的大多数方法被定义为扩展 IEnumerable<T> 的扩展方法。 这意味着可以像调用实现 IEnumerable<T> 的任意对象上的实例方法一样调用它们。
只有枚举查询对象时,返回一个值序列的查询所使用的方法才使用目标数据。 这就是延迟执行。 返回单一实例值的查询所使用的方法可立即执行和使用目标数据。
示例:
int[] arr = new[] { 1, 2, 3, 4, 5 }; // 求和 int sum = arr.Sum(); // sum = 15 // 求最大值 int max = arr.Max(); // max = 5 // 满足条件的最大值 int maxCon = arr.Max(a => { if (a < 4) return a; return 0; }); // maxCon = 3 // 寻找第一个元素 int first = arr.FirstOrDefault(); // first = 1 //寻找满足条件的元素 int firstCon = arr.FirstOrDefault(a => a > 2); // firstCon = 3 // 静态数组转动态 List<int> list = arr.ToList(); //数组中的数是否全为正数 bool isPositiveNumber = arr.All(a => a > 0); // 对于List 同样适用
Enumerable 类中涉及各种方法在此就不一一列出了
参考: https://msdn.microsoft.com/zh-cn/library/system.linq.enumerable(v=vs.110).aspx
相关文章推荐
- ArcGIS engine C#开发出现未能加载程序集“ESRI.ArcGIS.Controls, Version=10.0.0.0, Culture=neutral, PublicKeyToken=
- C# 多线程 异步加载 窗体
- C#线程间通讯
- C#关于事件的几个好例子
- C# 导出 数据 到Excel
- C#初级知识点整理及VS的简单使用
- C#窗口实现单例模式的方法
- VS2015 新Web项目(C#6)出现CS1617错误的解决
- 为什么C#串口程序在关闭串口时候会死锁
- 接口的显示实现和隐式实现一点笔记
- C#中out和ref之间的区别
- u3d c# 写一个通用倒计时器
- c# 双缓冲 技术与例子(解决应用程序闪烁问题)
- C# GDI+双缓冲技术
- 浅谈C#中的双缓冲
- C#实现12306自动登录的方法
- C# Debug与release之间的一些小差异
- C#中IList<T>与List<T>的区别感想
- C#中override和overload的区别
- C# WinForm程序退出的方法