最近我将部分旧代码从vb.net
转换为C#
。
我需要使用visual studio正则表达式更改所有现有代码(在Visual Studio 2010 IDE中查找并替换对话框)
查找
Rows(0).Item(0).ToString()用。。。来代替
Rows[0][0].ToString()
这意味着
Rows(--any--).Item(--any--).ToString() to Rows[--any--][--any--].ToString()
我搜索了很多,但我仍然无法做到这一点。
提示:我正在使用visual studio 2010
我的旧vb.net代码是
Dim firstColumnValue As String = dataTable.Rows(0).Item("firstColumn")
Dim secondColumnValue As String = dataTable.Rows(0).Item("secondColumn")
当我将VB.net转换为C#时,我使用this插件获得了以下内容,我得到了这个。
var firstColumnValue= dataTable.Rows(0).Item("firstColumn").ToString();
var secondColumnValue = dataTable.Rows(0).Item("SecondColumn").ToString();
但我实际上想要下面的内容。
var firstColumnValue= dataTable.Rows[0]["firstColumn"].ToString();
var secondColumnValue = dataTable.Rows[0]["SecondColumn"].ToString();
vb.net到C#的转换工具转换几乎都很好,但我需要在几乎所有文件中进行上述更改。
答案 0 :(得分:1)
使用:
查找:Rows({\d*}).Item({\d*}).ToString()
替换为:Rows[\1][\2].ToString()
并选中在搜索/替换窗口中使用正则表达式
答案 1 :(得分:1)
<强>正则表达式:强>
Rows\(([^)]*)\)\.Item\(([^)]*)\)(\.ToString\(\))
替换字符串:
Rows[\1][\2]\3
示例:强>
string str = "foo bar Rows(0).Item(0).ToString() barfoo";
string result = Regex.Replace(str, @"Rows\(([^)]*)\)\.Item\(([^)]*)\)(\.ToString\(\))", "Rows[$1][$2]$3");
Console.WriteLine(result);
Console.ReadLine();
查找
Rows\({([^)]*)}\)\.Item\({([^)]*)}\)(\.ToString\(\))
替换:
Rows[\1][\2]\3
答案 2 :(得分:0)
您可以使用Microsoft Visual Studio将代码从VB转换为C#。 您可以使用像This simple plug-in for Visual Studio 2010/2012 allows you to convert VB.net code to C#
这样的免费插件下面这个正则表达式解决方案也不是那么完美。例如:括号内的函数调用,如"foo bar Rows(0).Item(myfunc(n)).ToString() barfoo";