构建从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数组(确实如此,但是它隐藏了它们并使我的代码变得漂亮)并且我认为可能有一个很好的小技巧来完成我想要的上面.
你可以使用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)
归档时间: |
|
查看次数: |
93 次 |
最近记录: |