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

在C#中生成整数集

如何解决《在C#中生成整数集》经验,为你挑选了2个好方法。

在F#中,只需说出[1..100]就可以生成一组数字.

我想在C#中做类似的事情.这是我到目前为止所提出的:

public static int[] To(this int start, int end)
{
    var result = new List();
    for(int i = start; i <= end; i++)
        result.Add(i);
    return result.ToArray();
}

通过这样做,我现在可以通过说1.To(100)创建一个集合

不幸的是,这并不像[1..100]那样可读.有没有人想出更好的方法在C#中做到这一点?如果它是小写的,它是否更具可读性?1.to(100),例如?或者,"To"是一个坏词?类似于1.Through(100)更具可读性吗?

只是寻找一些想法.有没有其他人想出更优雅的解决方案?

编辑: 阅读完回复后,我使用以下范围重新编写了我的To方法:

public static int[] To(this int start, int end)
{
    return Enumerable.Range(start, end - start + 1).ToArray();
}

我仍在寻找关于1.To(100)的可读性的想法



1> terjetyl..:

Enumerable.Range(1,100);



2> Christoffer ..:

我喜欢使用的想法To.替代方案Enumerable.Range有一个微妙的缺陷imo.第二个参数不是最后一个元素的,它是枚举的长度.这就是我过去所做的:

public IEnumerable To(this int start, int stop)
{
  while (start <= stop)
    yield return start++;
}

编辑:如果您想将结果作为int[],只需添加.ToArray():

int[] theSet = 1.To(100).ToArray();

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