Ignore:
Timestamp:
Jan 13, 2009, 1:57:12 AM (15 years ago)
Author:
イグトランス (egtra)
Message:

List<T>のCapacityの増加量を2倍に修正。内部のポインタの取得用のDataプロパティの追加。Containsの実装。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/ablib/src/Classes/System/Collections/Generic/List.ab

    r633 r675  
    5656    End Sub
    5757
    58     Sub SetLeastCapacity( capacity As Long )
    59         If This.capacity < capacity Then
    60             Realloc(capacity)
    61         End If
     58    Sub SetLeastCapacity( leastCapacity As Long )
     59        Dim c = This.capacity
     60        While c < leastCapacity
     61            c *= 2
     62        Wend
     63        Realloc(c)
    6264    End Sub
    6365Public
     
    9193
    9294    /*!
    93     @brief  既存のIEnumerator<T>を使用してListを初期化
     95    @brief  既存のIEnumerable<T>を使用してListを初期化
    9496    @author NoWest
    9597    @date   2008/09/22
    96     @param  基になるIEnumerator<T>
    97     */
    98     Sub List ( enumerator As IEnumerator<T> )
     98    @param  基になるIEnumerable<T>
     99    */
     100    Sub List ( enumerable As IEnumerable<T> )
    99101        _Initialize( 1 )
    100         While enumerator.MoveNext()
    101             'ここでTをByetに変換できないというエラーになる This.Add(enumerator.Current())
    102         Wend
     102        Foreach e In enumerable
     103'           This.Add(e)
     104        Next
    103105    End Sub
    104106
     
    146148    End Function
    147149
     150    /*!
     151    @brief  内部の配列へのポインタを取得する
     152    @auther Egtra
     153    @date   2009/01/13
     154    @retrun 内部の配列へのポインタ
     155    @pre    Count <> 0
     156    */
     157    Function Data() As *T
     158        Return items
     159    End Function
    148160
    149161    '----------------------------------------------------------------
     
    217229    End Sub
    218230
    219 /*  Override Function Contains ( item As T ) As Boolean
    220         TODO
    221     End Function*/
     231    /*!
     232    @brief  Listに指定された要素が含まれるか調べる
     233    @author Egtra
     234    @date   2009/01/13
     235    */
     236    Function Contains ( item As T ) As Boolean
     237        Return IndexOf(item) >= 0
     238    End Function
    222239
    223240    /*!
Note: See TracChangeset for help on using the changeset viewer.