构建增加大小的int []

Ano*_*ser -2 c# linq arrays

构建从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();
Run Code Online (Sandbox Code Playgroud)

构建一个没有循环的锯齿状2D数组(确实如此,但是它隐藏了它们并使我的代码变得漂亮)并且我认为可能有一个很好的小技巧来完成我想要的上面.

Tim*_*ter 5

你可以使用Enumerable.Range:

int[] intArray = Enumerable.Range(0, numTotalIndexes).ToArray();
Run Code Online (Sandbox Code Playgroud)

您:

我确信有一种比使用for循环更好的方法

请注意,LINQ也使用循环,您根本看不到它们.它也不是最有效的方式,因为ToArray不知道数组必须有多大.但是,它是一种可读性和简短的方式.

所以这是初始化数组的(可能是过早的)优化的经典方法:

int[] intArray = new int[numTotalIndexes];
for(int i=0; i < numTotalIndexes; i++)
    intArray[i] = i;
Run Code Online (Sandbox Code Playgroud)