在.NET中填充整数列表

时间:2020-03-05 18:49:11  来源:igfitidea点击:

我需要一个从1到x的整数列表,其中x由用户设置。我可以使用for循环来构建它,例如,假设x是先前设置的整数:

List<int> iList = new List<int>();
for (int i = 1; i <= x; i++)
{
    iList.Add(i);
}

这似乎很愚蠢,肯定有更优雅的方法可以做到这一点,例如PHP range方法

解决方案

回答

LINQ解救:

// Adding value to existing list
var list = new List<int>();
list.AddRange(Enumerable.Range(1, x));

// Creating new list
var list = Enumerable.Range(1, x).ToList();

在LINQ 101上查看发电运营商

回答

如果使用的是.Net 3.5,则需要Enumerable.Range。

Generates a sequence of integral
  numbers within a specified range.

回答

我是写过ruby-esque To扩展方法博客的众多人之一,如果我们使用的是C#3.0,则可以编写该方法:

public static class IntegerExtensions
{
    public static IEnumerable<int> To(this int first, int last)
    {
        for (int i = first; i <= last; i++)

        { 
            yield return i;
        } 
    }
}

然后我们可以像这样创建整数列表

List<int> = first.To(last).ToList();

或者

List<int> = 1.To(x).ToList();