簡體   English   中英

如何在C Sharp中重命名實例化的數組對象

[英]How to rename an instantiated array object in C Sharp

我的目標是重命名 實例化數組

以下是一個測試案例。 我實際執行的程序從Excel電子表格讀取數據,執行過濾和類型轉換,然后將數據存儲在數組中(例如,下面的allData數組)。

將數據存儲在數組中后,我需要將數組拆分為兩個副本,並對每個副本執行一組單獨的任務。

為此,我創建了一個克隆 (在示例arr1 )。 現在,我有兩個相同數據的副本( allDataarr1 ),但是在過去的代碼中已適當命名的術語allData現在感覺命名不當,因此我想對其重命名。

我考慮過創建另一個克隆,但這只會使陣列( allDataallData閑置狀態,並不必要地占用內存。

我也考慮過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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM