出于 JSON 个原因,如何将元素附加到 C# 数组?

How to append an element to a C# array for JSON reasons?

我仍在开发我的 JSON 解析器和编写器。

使用 Visual Studio Web Essentials,我创建了一个 class 图表,其中包含一些数组,我可以在其中放置信息,例如:

public Channel[] channels { get; set; }

如您所见,这是一个没有预定义大小的数组(动态数组),现在我想向这个数组添加一些东西,但这似乎并不那么简单:this post,称为“ Adding values to a C# Array”提到了如何做到这一点:

我无法相信 Web Essentials 决定使用动态数组而没有想到一种简单的方法来操作这些数组。有人有想法吗?

特此摘录我的源代码,抛出 IndexOutOfRangeException:

root.<stuff>.channels[root.<stuff>.channels.Length] = new Channel();

我检查了 IsFixedSize 属性:它是 true 并且是只读的。

哦,我正在使用Visual Studio Enterprise 2019,我的.Net目标框架似乎是4.6.1,这似乎是我PC上安装的最高版本。

提前致谢

您无法调整固定大小数组的大小。该数组始终具有固定大小

此处最好的解决方案是使用 List<Channel> 而不是 Channel[]

否则,您可以创建一个新数组,其大小为前一个数组的大小加一,并通过最后一个数组索引设置添加值,但我认为这会很脏。

这里是关于数组的 msdn 文档:Array 说的是

Unlike the classes in the System.Collections namespaces, Array has a fixed capacity. To increase the capacity, you must create a new Array object with the required capacity, copy the elements from the old Array object to the new one, and delete the old Array.