Silverlight中文本框中的行信息/编号

时间:2008-12-18 20:24:51

标签: .net silverlight

区域: Silverlight中的文本框

问题: 我需要知道当前编辑的“行号”。

我试过了: 作为一种解决方法,我尝试使用textBox.Split(“\ r \ n”)进行拆分,并使用类似的性能计算Regex上的匹配项。在前2000行中的表现是可以接受的,但随后它会变慢。

为什么: 我有一个Textbox和一个Listbox并排。列表框中的项目索引对应于文本框中的行号,而(ListboxItem的)内容是文本框中相应行的“已处理”版本。

替代: 比我的黑客更具性能友好的策略。

2 个答案:

答案 0 :(得分:2)

我认为,您实际上不需要使用string.SplitRegex。只需迭代字符串并将'\r'计数到插入位置。

var s = ...the string...
var r = 0;
var c = ...caret position...

for (var i = 0; i < c; i++)
  if (s[i] == '\r')
    r++;

这样,你就可以找到行号,而无需在内存中创建大量的对象......

答案 1 :(得分:0)