从0开始构建整数数组并增加到给定点的最简单方法是什么?
背景:
我有一个struct
,其中包含表示其他数组索引的int[]
。
我想表示我希望通过填充此数组来使用所有索引,int
从0开始并逐渐增加到int numTotalIndexes;
我确信有更好的方法来执行此操作而不是使用for循环。
有人在这里向我展示了这个小小的Linq技巧
int[] numContacts = new int[]{ 32, 48, 24, 12};
String[][] descriptions = numContacts.Select(c => new string[c]).ToArray();
构建一个没有循环的锯齿状2D数组(确实如此,但它隐藏了它们并使我的代码变得漂亮)并且我认为可能有一个很好的小技巧来完成我想要的上面。
答案 0 :(得分:5)
您可以使用Enumerable.Range
:
int[] intArray = Enumerable.Range(0, numTotalIndexes).ToArray();
您:
我确信有比使用for循环
更好的方法
请注意,LINQ也使用循环,你根本看不到它们。它也不是最有效的方式,因为ToArray
不知道数组必须有多大。但是,它是一种可读性和简短的方式。
所以这是初始化数组的(可能是过早的)优化的经典方法:
int[] intArray = new int[numTotalIndexes];
for(int i=0; i < numTotalIndexes; i++)
intArray[i] = i;
答案 1 :(得分:0)
我不确定我完全理解你的问题,但如果按照你的第一行说出你想要的是
var MySequencialArray = Enumerable.From(0,howmanyyouwant).ToArray();