当前位置:  开发笔记 > 编程语言 > 正文

更好的Enumerable.Range上升和下降范围?

如何解决《更好的Enumerable.Range上升和下降范围?》经验,为你挑选了1个好方法。

假设我有两个点,int x1, x2哪里x1可以更大,更小或相等x2.我想生成这两个点之间的所有整数(包括开头x1和结尾x2),或者只是x1两个点相等的值.是否有任何优雅的方式来生成IEnumerable这些值?



1> Martin Liver..:

您可以使用此迭代器块:

IEnumerable CreateRange(int x1, int x2) {
  var increment = x2 > x1 ? 1 : -1;
  for (var i = x1; i != x2; i += increment)
    yield return i;
  yield return x2;
}

它是高效的,创建一个范围就像使用一样干净Enumerable.Range:

CreateRange(10, 5).Select( ... )

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有