0

我创建了一个预定义长度为 2 的数组。我有一种方法可以将项目添加到数组中。

它的代码是:

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

现在,我想做的是它首先要检查数组大小,看看数组是否满了。如果数组已满,它应该是数组大小的两倍。如果它没有满,那么它不应该什么都不做。所以,我想知道是否可以使用 if 语句来实现这一点?

编辑:我正在写一个集合类,这就是为什么我需要检查数组

4

2 回答 2

1

您应该真正熟悉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;
    }
}
于 2013-03-14T09:15:55.933 回答
0

你应该知道,如果你不自己做作业,你什么也学不到

但尝试这样的事情:

if count > size -2 than resize: size*2 else //什么也不做

也许您可以添加一个功能,例如: if count < size / 4 而不是将条目移到前面并调整大小: size/2 else //nothing

希望这个建议对你有用

于 2013-03-14T09:37:07.833 回答