SIL.FieldWorks.CacheLight.RealDataCache.Replace C# (CSharp) Method

Replace() public method

Member Replace
public Replace ( int hvoObj, int tag, int ihvoMin, int ihvoLim, [ SizeParamIndex = 5)]int[]rghvo, int chvo ) : void
hvoObj int hvoObj
tag int tag
ihvoMin int ihvoMin
ihvoLim int ihvoLim
SizeParamIndex [
chvo int chvo
return void
		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);
		}