Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- namespace UnEx_Sequences.Internal.Pools
- {
- //На данный момент это самый быстрый алгоритм в последовательностях.
- //С использованием текущего пула и последовательности SequenceEnumerable.
- //Рассматривается только метод RunAll()
- //2 математические операции увеличения числа на 1
- //2 условные конструкции
- //Общий итог: 4
- internal class SequenceCollectionPool<TList> : ISequencePool, IEnumerable<ISequence>
- where TList : IList<ISequence>, new()
- {
- public int Count => _sequences.Count;
- private readonly TList _sequences = new TList();
- private int _actualCount;
- public void Add(ISequence sequence)
- {
- _sequences.Add(sequence);
- _actualCount++;
- }
- public IEnumerator<ISequence> GetEnumerator() => _sequences.GetEnumerator();
- public void Remove(ISequence sequence)
- {
- if (_sequences.Remove(sequence)) _actualCount--;
- }
- public void RunAll()
- {
- for (int i = 0; i < _actualCount; i++) _sequences[i].Run();
- }
- IEnumerator IEnumerable.GetEnumerator() => _sequences.GetEnumerator();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement