找到下一个Numbered Bullet Word

时间:2017-08-08 05:28:03

标签: c# asp.net .net ms-word vsto

假设我们有以下列表。

  1. ITEM1
  2. 列表项
  3. 列表项
  4. 列表项
  5. 列表项
  6. 我有子弹3的范围,我想用C#找到它的下一个子弹。 需要帮助。

    {{1}}

    我正在使用此功能查找,但它占用了我的程序的大部分时间。 建议进行任何优化吗?

2 个答案:

答案 0 :(得分:0)

如果你有字符串列表 - 找到一些成员并获得它的索引。并且下一个项目的索引将增加1。

var index = lists.IndexOf(lists.FirstOrDefault(x => x == "222"));
 var next = lists[index + 1];

答案 1 :(得分:0)

您的列表是段落/范围的集合

跳转到您使用的下一个项目符号 Range.Next Unit:=wdParagraph

对于" 线性列表"但是列表是" 普通"段落,您需要检查ListFormat属性,以帮助您确定它是否是列表项

<强> [编辑]

以下是获取范围对象的示例代码

In VSTO

Range rng = Globals.ThisAddIn.Application.Selection.Range;
Range new_rng = rng.Next(WdUnits.wdParagraph);

In VBA

Dim rng As Range
Set rng = Selection.Range
Dim new_rng As Range
Set new_rng = rng.Next wdParagraph

我没有测试但它应该可以工作