在.NET中自动扩展数组?

时间:2010-02-26 20:29:03

标签: .net perl collections

.NET是否与Perl数组类似,它们以数字方式编制索引,但会根据需要自动扩展?它会像这样工作:

var x = new DreamArray<string>();

x[6] = "foo";  // x automatically has 7 elements
x[10] = "bar"; // now it has 11

5 个答案:

答案 0 :(得分:7)

使用List<string>代替数组。您必须拨打List.Add("item")才能添加到列表中。

答案 1 :(得分:4)

不,但可以通过以下方式轻松模拟:

class MagicArray<T> : Dictionary<int, T> {}

答案 2 :(得分:1)

Hash Tables&amp; ArrayLists是首先想到的两件事。尽管你可以以非常相似的方式使用哈希表,但它们并没有完全相同。

有关用法,示例和更多提示,请参阅C# Collections

答案 3 :(得分:1)

你可以轻松编写自己的。您必须实现ICollection接口,然后聚合标准List等。但是,在indexer属性中,如果索引大于Capacity,只需将Capacity属性更改为适当的大小。

答案 4 :(得分:0)

列表将是最接近的。只需使用List()