我想有一個數組,它將所有類的參數保存在一個數組中,然後讓這些參數中的每一個都指向它們在大數組中的位置。在C#中有可能有一個大數組,然後是較小的指向較大數組的子區的數組嗎?
我想這樣做的原因是因爲我打算優化基於上述參數的函數,但最小化需要所有參數放在一個數組中 - 我不想複製這個在每一步都來回排列 - 我寧願讓各個參數指向它們在主數組中的位置。事情是這樣的:
class myClass{
int nVariables;
public double[] parameters; //length = X * nVarialbes
public double[] A; //length = X
public double[] B; //length = X
public double[] C; //length = X
}
其中parameters
真的像[a1,a2,a3,b1,b2,b3,c1,c2,c3]
(其中在本例中X==3
) - 每個參數的數量同樣在這裏,但我寧願一個解決辦法,讓這是通用的。
這也將允許我更改A
,B
和C
的元素,並使數組保持全部更新。
我需要將數組作爲單個連續數組進行優化,所以只是做parameters = new double[]{A,B,C};
將無法工作 - 除非有辦法,然後我可以訪問它,就好像它是一個單一的數組;我的理解是,一個鋸齒狀的數組在內存中不是連續的,而且我不熟悉矩形數組來做我想要的。
如果你走的不安全的路線你可以用指針和所有那些東西,還是工會式的結構。雖然我不會推薦d it。 – Chris