LibiadaCore.Core.Chain.FillIntervalManagers C# (CSharp) Метод

FillIntervalManagers() публичный Метод

Fills all interval managers.
public FillIntervalManagers ( ) : void
Результат void
        public void FillIntervalManagers()
        {
            var occurrences = new int[alphabet.Cardinality - 1];
            for (int i = 0; i < occurrences.Length; i++)
            {
                occurrences[i] = -1;
            }

            var intervals = new List<int>[alphabet.Cardinality - 1];

            for (int i = 0; i < intervals.Length; i++)
            {
                intervals[i] = new List<int>();
            }

            for (int j = 0; j < building.Length; j++)
            {
                int value = building[j] - 1;
                intervals[value].Add(j - occurrences[value]);
                occurrences[value] = j;
            }

            if (congenericChains == null)
            {
                FillCongenericChains();
            }

            for (int k = 0; k < intervals.Length; k++)
            {
                int start = intervals[k][0];
                int end = building.Length - intervals[k].Last();
                intervals[k].RemoveAt(0);

                congenericChains[k].SetIntervalManager(new CongenericIntervalsManager(intervals[k].ToArray(), start, end));
            }
        }