我正在尝试将一段代码转换为 C#,但我无法理解它:
For iItem = LBound(arrItems) To UBound(arrItems)
If InStr(arrItems(iItem), strFieldName & "=") = 1 Then
strFindField = Mid(arrItems(iItem), Len(strFieldName) + 2)
Exit For
End If
Next
声明怎么了if
?
该工具似乎无法生成非常惯用的 C#,因此我将手动为您翻译以提供对比。
foreach (var item in arrItems)
{
if(item.IndexOf(strFieldName + "=") == 0)
{
strFindField = item.Substring(strFieldName.Length + 2);
break;
}
}
这应该模仿您在这里所做的事情,但是很难说出循环的意图是什么。另外,请注意,.Substring
如果您向其提供超出其范围的数字,则会引发异常,而Mid
只会返回一个空字符串。但是,由于尚不清楚如何使用此循环的返回,因此很难说处理此语义更改的最合适的选项是什么。
for (iItem = Information.LBound(arrItems); iItem <= Information.UBound(arrItems); iItem++) {
if (Strings.InStr(arrItems(iItem), strFieldName + "=") == 1) {
strFindField = Strings.Mid(arrItems(iItem), Strings.Len(strFieldName) + 2);
break; // TODO: might not be correct. Was : Exit For
}
}