ICSharpCode.AvalonEdit.Document.TextDocument.GetLineByNumber C# (CSharp) Method

GetLineByNumber() public method

Gets a line by the line number: O(log n)
public GetLineByNumber ( int number ) : DocumentLine
number int
return DocumentLine
        public DocumentLine GetLineByNumber(int number)
        {
            VerifyAccess();
            if (number < 1 || number > lineTree.LineCount)
            {
                try { throw new ArgumentOutOfRangeException("number", number, "Value must be between 1 and " + lineTree.LineCount); }
                catch { }
            }
            return lineTree.GetByNumber(number);
        }

Usage Example

        void CheckLines()
        {
            string text       = document.Text;
            int    lineNumber = 1;
            int    lineStart  = 0;

            for (int i = 0; i < text.Length; i++)
            {
                char c = text[i];
                if (c == '\r' && i + 1 < text.Length && text[i + 1] == '\n')
                {
                    DocumentLine line = document.GetLineByNumber(lineNumber);
                    Assert.AreEqual(lineNumber, line.LineNumber);
                    Assert.AreEqual(2, line.DelimiterLength);
                    Assert.AreEqual(lineStart, line.Offset);
                    Assert.AreEqual(i - lineStart, line.Length);
                    i++;                     // consume \n
                    lineNumber++;
                    lineStart = i + 1;
                }
                else if (c == '\r' || c == '\n')
                {
                    DocumentLine line = document.GetLineByNumber(lineNumber);
                    Assert.AreEqual(lineNumber, line.LineNumber);
                    Assert.AreEqual(1, line.DelimiterLength);
                    Assert.AreEqual(lineStart, line.Offset);
                    Assert.AreEqual(i - lineStart, line.Length);
                    lineNumber++;
                    lineStart = i + 1;
                }
            }
            Assert.AreEqual(lineNumber, document.LineCount);
        }
All Usage Examples Of ICSharpCode.AvalonEdit.Document.TextDocument::GetLineByNumber