我需要一个从1到x的整数列表,其中x由用户设置.我可以使用for循环构建它,例如假设x是先前设置的整数:
ListiList = new List (); 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(); list.AddRange(Enumerable.Range(1, x)); // Creating new list var list = Enumerable.Range(1, x).ToList();
请参见LINQ 101上的生成运算符
我是博客中关于ruby-esque To扩展方法的众多人之一,如果你使用的是C#3.0,你可以编写:
public static class IntegerExtensions { public static IEnumerableTo(this int first, int last) { for (int i = first; i <= last; i++)
{ yield return i; } } }
然后你可以像这样创建你的整数列表
List= first.To(last).ToList();
要么
List= 1.To(x).ToList();