/// <summary> /// 지정된 속성을 인덱스로 추가합니다. /// </summary> /// <param name="propertyName"></param> private void AddAllToIndex(string propertyName) { if (IsDebugEnabled) { log.Debug("컬렉션의 모든 요소의 속성[{0}] 의 값을 인덱싱합니다.", propertyName); } if (PropertyHasIndex(propertyName) == false) { _indexes.Add(propertyName, new MultiMap <int, T>()); } foreach (T item in this) { AddToIndex(item, propertyName, _indexes[propertyName]); } }
public override void Initialize(ArrayList attribList) { IIndexStore store = null; if (attribList != null && attribList.Count > 0) { IEnumerator e = attribList.GetEnumerator(); while (e.MoveNext()) { string attribName = e.Current.ToString(); if (commonRbStores != null && commonRbStores.ContainsKey(_type + ":" + attribName)) { HashStore commonStore = (HashStore)commonRbStores[_type + ":" + attribName]; IndexTable.Add(attribName, commonStore); } else { store = new HashStore(); IndexTable.Add(attribName, store); } } if (commonRbStores != null && commonRbStores.ContainsKey(TAG_INDEX_KEY)) { store = (HashStore)commonRbStores[TAG_INDEX_KEY]; IndexTable.Add(TAG_INDEX_KEY, store); } else { store = new HashStore(); IndexTable.Add(TAG_INDEX_KEY, store); } } if (!IndexTable.ContainsKey(TAG_INDEX_KEY) && commonRbStores != null && commonRbStores.ContainsKey(TAG_INDEX_KEY)) { store = (HashStore)commonRbStores[TAG_INDEX_KEY]; IndexTable.Add(TAG_INDEX_KEY, store); } }