C# 如何重复一个动作
基本上是想缩短这个时间:C# 如何重复一个动作,c#,C#,基本上是想缩短这个时间: octree[nodeIndices[0]].nodes[nodeIndices[1]] .nodes[nodeIndices[2]].nodes[nodeIndices[3]].nodes[nodeIndices[4]] 我认为这样的方法可以奏效,但不确定具体如何: octree[nodeIndices[0]].(Enumerable.Repeat(node[nodeIndices[i]], 4) 编辑:这里有更多的代码 OctreeNode[] node
octree[nodeIndices[0]].nodes[nodeIndices[1]]
.nodes[nodeIndices[2]].nodes[nodeIndices[3]].nodes[nodeIndices[4]]
我认为这样的方法可以奏效,但不确定具体如何:
octree[nodeIndices[0]].(Enumerable.Repeat(node[nodeIndices[i]], 4)
编辑:这里有更多的代码
OctreeNode[] nodes = octree;
ushort subdivisions = 1;
while (true)
{
ushort nodeIndex = 0;
OctreeNode node = nodes[nodeIndex];
if (node == null)
{
node = new OctreeNode();
node.nodes = new OctreeNode[8];
nodes = node.nodes;
}
subdivisions++;
if (subdivisions > 4)
break;
}
// the actual octree variable is unchanged
var结果=八叉树[nodeIndices[0]];
对于(int i=1;ivar result=八叉树[nodeIndices[0]);
对于(int i=1;不幸的是,在C#中,没有像VB.Net中那样使用
的。在不知道什么是八叉树的情况下,我认为我们无法为您做任何事情。您可以为此编写循环或递归函数。我不太清楚实际的问题是什么。您的第一段代码看起来像一个八叉树getNode(八叉树,int[]坐标)
函数对我来说,坐标在您的示例中:[0,1,2,3,4]
。不幸的是,在C#中,没有像我们在VB.Net中那样使用
的。在不知道什么是八叉树的情况下,我认为我们无法为您做任何事情。您可以为此编写循环或递归函数。我不太清楚的是,实际问题是什么。您的第一段代码看起来像是八叉树de(八叉树,int[]坐标)
函数对我来说,坐标在您的示例中:[0,1,2,3,4]
。如果我这样做,那么我认为我无法设置结果,而且我听说指针在C#中不安全。@JimmyChristmas在这个答案中没有指针。如果我设置result,它只会设置它的实例,而不是八叉树中的实际成员。@JimmyChristmasresult.node[nodeIndices[1]
执行与八叉树相同的操作[节点标识[0]]。节点[节点标识[1]]
出于某些原因,它不适合我。这里有更多我正在做的代码。每个OctreeNode
类都有一个子节点数组。-将代码添加到主帖子中如果我这样做,那么我认为我无法设置结果,我听说指针在C#中不安全。@JimmyChristmas此答案中没有指针。如果我设置结果,它将我只是在设置它的实例,而不是八叉树中的实际成员。@JimmyChristmasresult.node[nodeIndices[1]
执行与八叉树[nodeIndices[0]]相同的操作。nodes[nodeIndices[1]]
出于某种原因,它不适合我。这里有更多关于我所做工作的代码。每个OctreeNode
类都有一个子节点数组。-将代码添加到main post
var result = octree[nodeIndices[0]];
for (int i = 1; i <= 4; i++)
result = result.node[nodeIndices[i]];
// do something with result;