WikiFunctions.WikiDiff.UndoDeletion C# (CSharp) Method

UndoDeletion() public method

public UndoDeletion ( int left, int right ) : string
left int
right int
return string
        public string UndoDeletion(int left, int right)
        {
            StringBuilder s = new StringBuilder();

            for (int i = 0; i < RightLines.Length; i++)
            {
                if (i == right)
                {
                    if (s.Length > 0)
                    {
                        s.Append("\r\n");
                    }
                    s.Append(LeftLines[left]);
                }
                // specifically handle case of deletion of first line being a blank line
                if (s.Length > 0 || (i == 0 && i == left && string.IsNullOrEmpty(LeftLines[left])))
                {
                    s.Append("\r\n");
                }
                s.Append(RightLines[i]);
            }

            // if have deletions at end then right will be >= RightLines.Length so append LeftLines[left]
            if (left >= RightLines.Length || right >= RightLines.Length)
            {
                if (s.Length > 0)
                {
                    s.Append("\r\n");
                }
                s.Append(LeftLines[left]);
            }

            return s.ToString();
        }

Usage Example

コード例 #1
0
ファイル: DiffTests.cs プロジェクト: reedy/AutoWikiBrowser
        public void UndoDeletion()
        {
            WikiDiff d = new WikiDiff();

            d.GetDiff(@"
            A1
            A2", @"A1
            A2", 2);

            Assert.AreEqual(@"
            A1
            A2", d.UndoDeletion(0, 0), "Undo of delete first blank line");

            d = new WikiDiff();

            d.GetDiff(@"A1
            A2
            ", @"A1
            A2", 2);

            Assert.AreEqual(@"A1
            A2
            ", d.UndoDeletion(2, 2), "Undo of delete last blank line");
        }