加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 06:28:49 所属栏目:百科 来源:网络整理
导读:如果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中并不存在,
如果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类,你必须创建一个新的静态类来保存这个方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读