Exemple #1
0
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="listA">Left sequence</param>
        /// <param name="listB">Right sequence</param>
        /// <param name="supportChangeEditType">If "Change" EditType is allowed (default is delete and insert only)</param>
        /// <param name="equalityComparer"></param>
        public MyersDiff(IList <T> listA, IList <T> listB, bool supportChangeEditType, IEqualityComparer <T> equalityComparer = default)
        {
            _listA = listA;
            _listB = listB;
            _supportChangeEditType = supportChangeEditType;
            _equalityComparer      = equalityComparer ?? EqualityComparer <T> .Default;

            var n = listA.Count;
            var m = listB.Count;

            _vectorForward = new DiagonalVector(n, m);
            _vectorReverse = new DiagonalVector(n, m);
        }
        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="listA">Left sequence</param>
        /// <param name="listB">Right sequence</param>
        /// <param name="supportChangeEditType">If "Change" EditType is allowed (default is delete and insert only)</param>
        /// <param name="equalityComparer"></param>
        public MyersDiffArraySegment(T[] listA, T[] listB, bool supportChangeEditType, IEqualityComparer <T> equalityComparer = default)
        {
            _listA = listA;
            _listB = listB;
            _supportChangeEditType = supportChangeEditType;
            _equalityComparer      = equalityComparer ?? EqualityComparer <T> .Default;

            var n = listA.Length;
            var m = listB.Length;

            _vectorForward = new DiagonalVector(n, m);
            _vectorReverse = new DiagonalVector(n, m);
        }