0

.NET 中是否可以定义具有可变数量整数的结构?

我有具有不同整数数量的对象集合。现在,每个集合都将具有一致数量的整数。因此,我将有一个具有 1 个 int 结构的集合,另一个具有 3 个 int 结构的集合,另一个具有 7 个 int 的集合,等等。我宁愿不为每种类型定义单独的结构,也不必创建一个数组来保存集合所以我'我想知道是否有某种方法来定义动态结构。

不想使用数组的原因是集合包含在父结构中

public struct ParentStruct<T>
{
    public double Timestamp;
    public T Value;
}

我宁愿没有引用,也不必为每个结构执行数组分配。我宁愿将整数定义为“内联”(或至少在创建 ParentStruct 时分配所有整数)。不确定这是否可能或值得努力,但我想我会问。

4

1 回答 1

2

CLR 不支持可变大小值类型的概念。这将极大地破坏具有值类型的价值,具有已知大小是使它们高效并且能够存储在堆以外的位置的原因。如果泛型允许使用可以指定固定大小缓冲区大小的泛型参数,您可能会对此有所尝试,但他们没有实现这一点。使固定大小缓冲区的类型成为通用参数是可能的,但对于您想要做的事情肯定太严格了。而且不安全。

您需要使用数组。不要害怕 GC 堆分配器,它非常非常快。

于 2013-06-05T16:58:11.507 回答