Ejemplo n.º 1
0
        /// <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;
            }
        }
Ejemplo n.º 2
0
 /// <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);
     }
 }