gpt4 book ai didi

c# - 当我向数组添加某些内容时,它不会向列表添加任何内容

转载 作者:行者123 更新时间:2023-12-03 08:03:33 25 4
gpt4 key购买 nike

基本上,我试图将一些内容附加到数组中,但由于某种原因甚至无法工作。

(gObject 是一个具有名称和值的事物)

public gObject[] OBJECTS = {};
public void RegisterObjectToRender(gObject reg)
{
OBJECTS.Append<gObject>(reg);
for (int ri = 0; ri < OBJECTS.Length; ri++)
{
Console.WriteLine(OBJECTS[ri].Name);
}
}

顺便说一句,我希望每个阅读本文的人都度过愉快的一天

最佳答案

数组的大小始终是固定的。如果您想要一个列表:使用列表,即使用 List<Your type>而不是数组。列表有 Add方法。

我猜是Append这里的方法是一个本地扩展方法,仅存在于您的代码中(不是普通的 API)。我还猜测它调用 Array.Resize在内部,但是:创建一个新的不同的数组 - 它不会更改现有的数组。因此,如果您使用它,您还需要随后将底层引用交换为新的数组引用。但是,不要这样做:Array.Resize效率非常低,因为它每次追加都会分配一个新数组(对比 List<T> ,它保留一个超大的后备数组,并单独跟踪计数,只是偶尔增加底层数组)。

关于c# - 当我向数组添加某些内容时,它不会向列表添加任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73132704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com