Esempio n. 1
0
            /// <seealso cref="Graph.edgesOf(Object)">
            /// </seealso>
            public override System.Collections.IList edgesOf(System.Object vertex)
            {
                System.Collections.ArrayList inAndOut = new System.Collections.ArrayList(getEdgeContainer(vertex).m_incoming);
                inAndOut.AddRange(getEdgeContainer(vertex).m_outgoing);

                // we have two copies for each self-loop - remove one of them.
                if (Enclosing_Instance.m_allowingLoops)
                {
                    System.Collections.IList loops = getAllEdges(vertex, vertex);

                    for (int i = 0; i < inAndOut.Count;)
                    {
                        System.Object e = inAndOut[i];

                        if (loops.Contains(e))
                        {
                            inAndOut.RemoveAt(i);
                            loops.Remove(e);                             // so we remove it only once
                        }
                        else
                        {
                            i++;
                        }
                    }
                }

                return(inAndOut);
            }
Esempio n. 2
0
 /// <summary>
 /// Make sure this list contains only these items.
 /// </summary>
 public static void SetItems(this System.Collections.IList List, System.Collections.IList Items)
 {
     if (isInside.ContainsKey(List))
     {
         return;
     }
     try
     {
         isInside[List] = null;
         for (int i = 0; i < List.Count; i++)
         {
             var item = List[i];
             if (Items.Contains(item))
             {
                 continue;
             }
             List.Remove(item);
             i--;
         }
         foreach (var item in Items)
         {
             if (!List.Contains(item))
             {
                 List.Add(item);
             }
         }
     }
     finally
     {
         isInside.Remove(List);
     }
 }
Esempio n. 3
0
        /// <summary>
        /// 过滤出有权限的病区
        /// </summary>
        /// <param name="p_objArea">病区对象</param>
        /// <param name="p_ilUsableAreaID">有权访问的病区ID集合</param>
        /// <returns>有权访问的病区对象集合</returns>
        public ArrayList GetUsableAreaObject(clsBIHArea[] p_objArea, System.Collections.IList p_ilUsableAreaID)
        {
            ArrayList ilRes = new ArrayList();

            if (p_objArea == null || p_objArea.Length <= 0)
            {
                return(ilRes);
            }

            //全部的可访问的病区对象
            for (int i1 = 0; i1 < p_objArea.Length; i1++)
            {
                if (p_objArea[i1] == null)
                {
                    continue;
                }
                if (p_ilUsableAreaID.Contains(p_objArea[i1].m_strAreaID.Trim()))
                {
                    if (!(ilRes.Contains(p_objArea[i1])))
                    {
                        ilRes.Add(p_objArea[i1]);
                    }
                }
            }
            return(ilRes);
        }
Esempio n. 4
0
 /// <summary>
 /// Add range values to this List
 /// </summary>
 public static void AddRange(this System.Collections.IList Collection, System.Collections.IEnumerable Items, bool AllowRepeatedValues = true)
 {
     foreach (var item in Items)
     {
         if (!AllowRepeatedValues && Collection.Contains(item))
         {
             continue;
         }
         Collection.Add(item);
     }
 }
 /// <summary>
 /// Verifica se o item está contido na coleção.
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public bool Contains(TDestination item)
 {
     return(_sourceList.Contains(item));
 }