将 dataType[] 替换为 List<dataType>

Replace dataType[] with List<dataType>

我用 xsd.exe 生成了 xsd 的数据模型。我想用通用列表 => List<dataType> 交换 dataType[]。我需要自动更改语法,因为 dataModel 类 很大。

我的初衷是直接用xsd.exe生成正确的代码。经过一番调查后,我发现这不是一个选项。

然后我尝试用 Regex 解决我的问题,但我没有幸运地找到正确的表达式。可能有人可以帮助我。修改可以直接在 Visual Studio 中完成,或者如果这在 Notepad++ 中不起作用。

我想做什么:

public dataType1[] dataType1 => public List<dataType1> dataType1
public dataType2[][]         => public List<List<dataType2>>
public dataType3[][][]       => public List<List<List<dataType3>>>

我在 VS 中使用正则表达式的方法:

// Find with:
(?<=\s)[A-Za-z_0-9]+(?=(\[\]){1})

// Replace with:
List<$&>

不幸的是,我的方法无法一步到位。此外,我必须将 1 到 n [] 分开处理。最后,我必须删除所有 [] 和 find/replace,这可能会导致错误。

有人可以帮我一步解决吗?使用正则表达式或可能使用不同的东西。对我来说重要的是一个解决方案,我可以在创建数据模型后快速轻松地部署它。

您可以使用 nodepad++ 宏解决此问题。

  1. 单击 Start recording macro 按钮

  2. Control + H 启动搜索和替换

  3. 查找内容:(?<=\s)([<>A-Za-z_0-9]+)\[\]

    替换为:List<>

    全部替换

  4. 在不关闭搜索对话框的情况下单击查找下一个

  5. 单击 Stop recording macro 按钮。

  6. 现在转到您要处理的文件

  7. 单击 Run a macro multiple times 按钮

  8. Select Run until the end of file

  9. 运行

注意:录制宏后,您可以'save'它以供以后重复使用。保存后它将在记事本++重新启动时可用。