在.NET中定义具有任意数量的int的结构

时间:2013-06-05 16:18:27

标签: .net

在.NET中是否可以定义一个具有可变数量的int的结构?

我拥有不同数量的对象集合。现在,每个集合都会有一致的数量。所以,我有一个带有1个int的结构的集合,另一个带有3个int的结构的集合,另一个带有7个int的集合等等。我不是为每个类型定义单独的结构或者必须创建一个数组来保存集合所以我我想知道是否有某种方法来定义动态结构。

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

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

我不想使用引用,也不必为每个结构执行数组分配。我宁愿将int定义为'inline'(或至少在创建ParentStruct时分配)。不确定是否可能或值得努力,但我想我会问。

1 个答案:

答案 0 :(得分:2)

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

您需要使用数组。 担心GC堆分配器,它非常快。