【问题标题】:How to rename an instantiated array object in C Sharp如何在 C Sharp 中重命名实例化的数组对象
【发布时间】:2017-03-25 11:52:51
【问题描述】:

我的目标是重命名一个实例化数组

下面是一个测试用例。我的实际程序从 excel 电子表格中读取数据,执行过滤和类型转换,然后将该数据存储在一个数组中(例如下面的 allData 数组)。

一旦数据存储在数组中,我需要将数组拆分为自身的两个副本,并对每个副本执行一组单独的任务。

为此,我创建了一个克隆(在示例中为arr1)。现在我有两个相同数据的副本(allDataarr1),但术语 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
        }
    }
}

【问题讨论】:

  • 其实arr2 = allData这个没关系,只是复制参考,别让自己头疼,这样会节省很多时间
  • 为什么不让它成为 object[][][]allDataInstances = new object[2][][]
  • 非常感谢 Sherlock 和 user3488765 的建议。我同意有些解决方案可以节省大量时间,但出于教育目的,我想知道如何重命名实例化数组。感谢您提供的任何帮助。

标签: c# arrays excel rename


【解决方案1】:

您可以在单独的方法中检索 Excel 数据,然后将值写入您通过引用传递的两个数组中。通过仅将 all_data 的范围设置为此方法,一旦它退出,该数组将在下一次垃圾收集器调用时被删除。您可以在此处找到更多信息:How to delete an array。大致如下:

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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-12
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    相关资源
    最近更新 更多