0

我们目前已经开始评估 AvalonEdit。我们想将它用于自定义语言。我们的要求之一是重新排序并按特定标准对文档行进行排序。如何实现?

提前致谢!

4

1 回答 1

2

AvalonEdit 提供了ICSharpCode.AvalonEdit.Document.DocumentLine该类,但该类仅提供有关行长、开始和结束偏移等的元数据。

在我看来,有两种方法可以解决您的问题

  1. 遍历所有行 usingTextEditor.LineCount并将 Line 保存到DocumentLineusing 中TextEditor.Document.GetLineByNumber(int number)。此外,您可以使用TextEditor.Document.GetText(DocumentLine.Offset, DocumentLine.Length获取该行的文本

  2. 用于TextEditor.Text.Split('\n')将所有行作为字符串数组获取。

我建议您使用 DocumentLine 方法。即使您必须使用 GetText 方法来获取行的文本,行上的元数据也非常好。

要获取所有 DocumentLines,您可以使用循环

List<DocumentLine> DocumentLines = new List<DocumentLine>(TextEditor.LineCount - 1);
for (int i = 1; i < TextEditor.LineCount; i++)
{
    DocumentLines.Add(TextEditor.Document.GetLineByNumber(i));
}
于 2014-10-19T16:14:41.797 回答