コード例 #1
0
        /// <summary>
        /// Remove the instruments.
        /// </summary>
        /// <param name="securities">The instruments.</param>
        public void RemoveRange(IEnumerable <Security> securities)
        {
            if (securities == null)
            {
                throw new ArgumentNullException(nameof(securities));
            }

            securities = securities.ToArray();

            lock (_sync)
            {
                if (securities.Count() > 1000 || (_allSecurities.Count > 1000 && securities.Count() > _allSecurities.Count * 0.1))
                {
                    _allSecurities.RemoveRange(securities);

                    securities = _allSecurities.ToArray();

                    _allSecurities.Clear();
                    _trie.Clear();

                    securities.ForEach(Add);
                }
                else
                {
                    _trie.RemoveRange(securities);
                    _allSecurities.RemoveRange(securities);
                }
            }
        }