0

I have created an array with a predefined length of 2. And I have a method for adding items to the array.

The code for it is:

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

Now, what I want to do is that it first has to check the array size and see if the array is full of not. If the array is full, it should double the size of the array. If its not full then it shouldn't do nothing. So, I'm wondering if I can make this possible with an if statement?

EDIT: Im writing an collection class, thats why I need to check the array

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 //何もしない

このアドバイスがお役に立てば幸いです

于 2013-03-14T09:37:07.833 に答える