public void Replace(int hvoObj, int tag, int ihvoMin, int ihvoLim, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] int[] rghvo, int chvo)
{
CheckDisposed();
List<int> list;
HvoFlidKey key = new HvoFlidKey(hvoObj, tag);
if (m_vectorCache.TryGetValue(key, out list))
{
while (ihvoLim > ihvoMin)
{
list.RemoveAt(ihvoMin);
ihvoLim--;
}
}
else
m_vectorCache[key] = list = new List<int>(chvo);
ihvoMin = Math.Min(ihvoMin, list.Count);
list.InsertRange(ihvoMin, rghvo);
for (int i = ihvoMin; i < list.Count; i++)
CacheIntProp(list[i], (int)CmObjectFields.kflidCmObject_OwnOrd, i);
}