[英]How to rename an instantiated array object in C Sharp
我的目標是重命名 實例化數組 。
以下是一個測試案例。 我實際執行的程序從Excel電子表格讀取數據,執行過濾和類型轉換,然后將數據存儲在數組中(例如,下面的allData
數組)。
將數據存儲在數組中后,我需要將數組拆分為兩個副本,並對每個副本執行一組單獨的任務。
為此,我創建了一個克隆 (在示例arr1
)。 現在,我有兩個相同數據的副本( allData
和arr1
),但是在過去的代碼中已適當命名的術語allData
現在感覺命名不當,因此我想對其重命名。
我考慮過創建另一個克隆,但這只會使陣列( allData
) allData
閑置狀態,並不必要地占用內存。
我也考慮過arr2 = allData
但這只是多余地保留了一個引用(allData)。 我真正想要的是將allData重命名為arr2。
namespace nspace
{
public class c
{
public static void Main()
{
object[][] allData = new object[10][];
for (int i = 1; i <= 10; i++)
{
for (int j = 1; j <= 5; j++)
{
// fill array with something
}
}
arr1 = allData.clone();
// Rename array allData to arr2
}
}
}
您可以使用單獨的方法檢索excel數據,然后將值寫入通過引用傳遞的兩個數組中。 通過將all_data的范圍設置為僅此方法,退出該數組后,將在下一個垃圾回收器調用時刪除該數組。 您可以在此處找到更多信息: 如何刪除數組 。 遵循以下原則:
static void Main(string[] args)
{
object[][] arr1 = new object[10][];
object[][] arr2 = new object[10][];
GetData(ref arr1, ref arr2);
}
private static void GetData(ref object[][] arr1, ref object[][] arr2)
{
object[][] allData = new object[10][];
object[] data;
for (int i = 0; i < 10; i++) //this is just for sample purposes
{
data = new object[10];
for (int j = 0; j < 10; j++) { data[j] = i * j; }
allData[i] = data;
}
arr1 = allData;
arr2 = allData;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.