在.NET中填充整数列表

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

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

这似乎愚蠢,当然有一个更优雅的方式来做到这一点,就像PHP范围方法

如果你使用的是.Net 3.5, Enumerable.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上的生成操作符

如果你使用C#3.0,你可以编写一个ruby-esque To扩展方法,我是其中的一个。

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

然后你可以像这样创build你的整数列表

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

要么

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

这是一个返回整数列表的简短方法。

  public static List<int> MakeSequence(int startingValue, int sequenceLength) { return Enumerable.Range(startingValue, sequenceLength).ToList<int>(); }