/// <summary> /// Vloží prvek na danou stranu. Reaguje pouze na zadání Left nebo Right. /// </summary> /// <param name="side"></param> /// <param name="item"></param> protected void SetItem(SynchronizedSide side, TValue item) { switch (side) { case SynchronizedSide.Left: this.ItemLeft = item; this.HasItemLeft = true; break; case SynchronizedSide.Right: this.ItemRight = item; this.HasItemRight = true; break; } }
/// <summary> /// Naplní Dictionary z prvků na dané straně páru /// </summary> /// <param name="syncDict"></param> /// <param name="items"></param> /// <param name="keyGenerator"></param> /// <param name="targetSide"></param> protected static void FillSyncDict(Dictionary <TKey, SynchronizedPair <TKey, TValue> > syncDict, IEnumerable <TValue> items, Func <TValue, TKey> keyGenerator, SynchronizedSide targetSide) { if (items == null) { return; } foreach (TValue item in items) { TKey key = keyGenerator(item); var syncItem = syncDict.GetAdd(key, k => new SynchronizedPair <TKey, TValue>(k)); syncItem.SetItem(targetSide, item); } }