C# 由于双括号,转换代码时出现问题

C# 由于双括号,转换代码时出现问题,c#,vb.net,legacy-code,C#,Vb.net,Legacy Code,我正试图将一些旧的遗产从VB转换为C#但是我遇到了一个关于双括号的特殊问题 Dim _atts As List(Of String()) = List(Of String()) Dim tmp() As String = Me._atts.Item(AttNo)(ValNo).Split(_SVM) 我不明白如何用C写(attNo)(valNo)# 我试过以下方法,但没有成功 List<string[]> _atts = new List<string[]>(); st

我正试图将一些旧的遗产从VB转换为C#但是我遇到了一个关于双括号的特殊问题

Dim _atts As List(Of String()) = List(Of String())
Dim tmp() As String = Me._atts.Item(AttNo)(ValNo).Split(_SVM)
我不明白如何用C写(attNo)(valNo)#

我试过以下方法,但没有成功

List<string[]> _atts = new List<string[]>();
string[] tmp = this._atts[attNo](valNo).Split(_SVM);
List_atts=newlist();
字符串[]tmp=this._atts[attNo](valNo).Split(_SVM);
有人能告诉我双括号在VB中的实际作用吗


谢谢

在VB.Net中,此上下文中的括号用于访问和迭代数组的值(访问索引器)。因此,如果您的成员变量“exampleArray”的值为{“I”、“Like”、“Coding”},则可以如下方式访问它:

VB

C#

现在tmpStr包含值“Like”

现在考虑你有一个数组“OutTrar”,它包含{ExpReLayRay.,其他数组}。如果要获得值“Like”,则需要为两个数组编制索引:

VB

C#

第一组方括号(c#)或括号(VB)用于索引“outerArray”以访问“exampleArray”。 然后使用第二组方括号或圆括号访问“exampleArray”中的值“Like”


Ref:

我一点也不记得VB了,但可能是2d/锯齿数组语法?像
someArray[1][2]
取决于
\u atts.Item
是什么…,更像@maccettura提到的2d数组。尝试
string[]tmp=this.\u atts[attNo][valNo].Split(\u SVM)啊,不可能,它正盯着我看,从来没有使用过2d/锯齿阵列的经验。我认为那根本不是VB6代码,可能是.Net。这是vb.Net,不是VB6。正如第一条注释和当前答案所述,此处使用括号表示索引器,因此在翻译为c时,将其转换为方括号-
string[]tmp=this.\u atts[attNo][valNo].Split(\u-SVM)加一。回答得好。一个问题:从OP的问题来看,“外部”部分似乎是一个
列表(T)
,而不是一个数组。但是我认为你的C代码对于包含数组的
列表(T)
也是正确的。回答得好thanks@MarkJ不过,你是对的,在我回答这个问题后,我给这个问题增加了一点背景知识。“接得好!”安德烈·莫尔顿说得绝对正确。换了
Dim tmpStr as String = Me.exampleArray(1); 
string tmpStr = this.exampleArray[1];
Dim tmpStr as String = outerArray(0)(1)
string tmpStr = outerArray[0][1];