/// <summary>
        /// 获取数据节点
        /// </summary>
        /// <typeparam name="T">数据节点类型</typeparam>
        /// <param name="t_Handler">查询委托</param>
        /// <returns>返回数据节点实例</returns>
        public BaseModule GetNode(Func <BaseModule, bool> t_Handler)
        {
            var t_ToList = m_SLinkedList.ToList(); //转换成System.List

            for (int i = 0; i < t_ToList.Count; i++)
            {
                if (t_Handler(t_ToList[i]))
                {
                    return(t_ToList[i]);
                }
            }
            return(null);
        }
Пример #2
0
        /// <summary>
        /// 获取数据节点
        /// </summary>
        /// <typeparam name="T">数据节点类型</typeparam>
        /// <param name="t_Handler">查询委托</param>
        /// <returns>返回数据节点实例</returns>
        public IEventTopic GetNode(Func <IEventTopic, bool> t_Handler)
        {
            var t_ToList = m_SLinkedList.ToList(); //转换成System.List

            for (int i = 0; i < t_ToList.Count; i++)
            {
                if (t_Handler(t_ToList[i]))
                {
                    return(t_ToList[i]);
                }
            }
            return(null);
        }
Пример #3
0
        public void SLinkedListMustWork()
        {
            int               n     = 1000;
            Random            rnd   = new Random();
            SLinkedList <int> mlist = new SLinkedList <int>();

            int[] test1 = new int[n];
            for (int i = 0; i < n; i++)
            {
                mlist.PushBack(rnd.Next(-20, 20));
                test1[i] = mlist.Trailer.Value;
            }

            Assert.AreEqual(mlist.Size, n);
            Assert.AreEqual(test1[0], mlist.Header.Value);
            Assert.AreEqual(test1[n - 1], mlist.Trailer.Value);

            var test2 = mlist.ToList();

            for (int i = 0; i < n; i++)
            {
                Assert.AreEqual(test1[i], test2[i]);
            }
        }