检查数组的当前值,C#

问题描述:

我创建了一个预定义长度为2的数组。我有一个向数组添加项目的方法。检查数组的当前值,C#

它的代码是:

public void addItem(T item) 
{ 
    Array.Resize(ref items, items.Count() + 2); 
    items[items.Count() - 2] = item; 
} 

现在,我想要做的是,它首先必须检查数组的大小,看看数组充满了不。如果数组已满,则应该使数组大小加倍。如果它不满,那么它不应该做任何事情。所以,我想知道我是否可以用if语句使这成为可能?

编辑:我写的集合类,这就是为什么我需要检查阵列

+9

听起来像你重新发明['名单'](http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx)class?请问为什么? – 2013-03-14 09:14:10

+2

为什么不使用'List '这个功能是否已经内置? – 2013-03-14 09:14:22

+0

创新*是一个严肃的业务 – Sergio 2013-03-14 09:15:10

你真的应该熟悉它已经默认使用此功能List<T>

List.Add例如调用EnsureCapacity

private void EnsureCapacity(int min) 
{ 
    if (this._items.Length < min) 
    { 
     int num = (this._items.Length == 0) ? 4 : (this._items.Length * 2); 
     if (num < min) 
     { 
      num = min; 
     } 
     this.Capacity = num; 
    } 
} 
+0

是的,但我正在写一个集合类,我不允许使用通用集合 – user2167085 2013-03-14 09:17:24

+0

所以这个作业。好的,但不清楚你实际存在什么问题。你可以看一下'List '(我用'ILSpy')的实现来看MS是如何做到的。 – 2013-03-14 09:22:02

你应该知道,你没有学到任何东西,如果你不自己

0做功课

但尝试这样的事:

如果计数>尺寸-2 比调整:尺寸* 2 //别的什么也不做

也许你可以添加一个功能,如: 如果计数<大小/ 4 比移项前和调整:尺寸/ 2 别的什么//

希望这个建议是对您有用