c# – 如何使用Enumerable.Range获取替代数字?

前端之家收集整理的这篇文章主要介绍了c# – 如何使用Enumerable.Range获取替代数字?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果Start = 0和Count = 10,那么如何使用Enumerable.Range()获取替代值
输出应该是{0,2,4,6,8}

如果Start = 1,Count = 10则{1,3,5,7,9}

连续值可以得到

var a = Enumerable.Range(0,10).ToList();

但是如何获得替代值?

解决方法

在这之后你在BCL中并不存在,据我所知,所以你必须像这样来自己的静态类来实现所需的功能
public static class MyEnumerable {
  public static IEnumerable<int> AlternateRange(int start,int count) {
    for (int i = start; i < start + count; i += 2) {
      yield return i;
    }
  }
}

那么你可以像这样使用它:

foreach (int i in MyEnumerable.AlternateRange(0,10)) {
  //your logic here
}

然后,您也可以使用此函数执行LINQ查询,因为它返回IEnumerable

所以如果你想要你可以aleo写上面这样,如果你想排除数字6

foreach (int i in MyEnumerable.AlternateRange(0,10).Where( j => j != 6)) {
  //your logic here
}

我希望这是你以后的事情.

您不能将此作为Enumerable的扩展方法,因为它是一个静态类,扩展方法适用于类的对象,而不是类本身.这就是为什么如果你想模仿Enumerable类,你必须创建一个新的静态类来保存这个方法.

猜你在找的C#相关文章