Enumerable

参考资料:LINQ Enumerable

1

//生成一个数组序列 List<int>(){1,2,3.....20};
var a = Enumerable.Range(1, 20).ToList(); 


2

var a = Enumerable.Range(1, 5).Sum(); 
            
//Enumerable.Range(1, 5)表示生成一个1到5序列
//Enumerable.Range(1, 5).Sum(); 表示对这个序列进行求和 的到15

3

//生成一个数组序列 List<int>(){1,2,3.....10};然后筛选出其中的偶数
 var arr = Enumerable.Range(1, 10).Where(r => r % 2 == 0).ToArray();


var sum= Enumerable.Sum(arr); //对arr这个数组进行求和 的到:30

4

//Enumerable.Repeat方法创建包括指定值,且按指定次数重复的一个列表。
var arrs = Enumerable.Repeat("Hello", 6).ToArray();

//arrs的值为string[]{"Hello","Hello","Hello","Hello","Hello","Hello"}


### 枚举类型的概述 枚举类型(`IEnumerable<T>`)表示可以遍历的对象集合。此接口定义了一个单一的方法 `GetEnumerator()`,该方法返回一个用于迭代集合的枚举器对象[^1]。 在 C# 中,许多内置类实现了这个接口,比如数组、列表和其他集合类型。通过实现 `IEnumerable<T>` 接口,任何自定义的数据结构都可以被 foreach 循环访问,从而简化了代码编写过程[^4]。 #### 创建和操作 IEnumerable 对象的例子 下面是一个简单的例子展示了如何创建以及操作基于 `IEnumerable<int>` 类型的数据序列: ```csharp // 定义整数范围并应用转换逻辑 var numbers = Enumerable.Range(1, 10).Select(i => i * 3); foreach (var num in numbers) { Console.WriteLine(num); } ``` 这段代码首先生成了一组连续的正整数值,并对其进行了三倍放大处理;最后使用 foreach 结构逐项打印结果[^2]。 另一个更复杂的案例涉及到了多个泛型参数之间的映射关系: ```csharp (IEnumerable<A>, IEnumerable<B>, Func<(A,B),C>) -> IEnumerable<C> ``` 这里展示的是将两个不同类型的输入流组合成一个新的输出流的过程,其中第三个参数是指定了具体映射规则的 lambda 表达式。 #### 并行化与函数式编程实践 为了提高性能,还可以采用并行计算的方式来进行大规模数据集的操作。例如,在格式化字符串列表时就可以利用到这一点: ```csharp using static System.Linq.ParallelEnumerable; public static List<string> Format(List<string> list) => list.AsParallel() .Select(StringExt.ToSentenceCase) .Zip(Range(1, list.Count), (s, i) => $"{i}. {s}") .ToList(); ``` 上述片段中,`.AsParallel()` 方法使得后续链式的 Linq 查询能够在多核处理器上并发执行,进而加速整个运算流程[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值