未将换行符添加到字符串中



这是我的测试代码

public string myMethod(int[,] anArray)
{
string aString = "";
for (int i = 0; i < anArray.GetLength(0); i++)
{
for (int j = 0; j < anArray.GetLength(1); j++)
{
if (j == anArray.Length - 1)
{
aString += " " + anArray[i, j] + "rn";
continue;
}
aString += anArray[i, j] + "|";
}
}
return aString; 
}

当我调用该方法时,我期待一个包含换行符的字符串。

我想要的结果

0|0|0
0|0|0
0|0|0

但是我得到了这个

0|0|0|0|0|0|0|0|0|

谢谢。

编辑:在if条件下愚蠢的错误,仅此而已。

第二次编辑:我在代码的后半部分有错误的 if 条件语句,导致字符串不正确。

字符串是不可变的,效率低下。

StringBuild sb = new StringBuilder();
for ()
{
sb.AppendLine(" " + anArray[i, j]);
}

根据评论

anArray.GetLength(1) 
anArray.Length  

不一样

代码应如下所示:

if (j == anArray.GetUpperBound(1))
{
aString += anArray[i, j] + "rn";
continue;
}

if (j == anArray.Length - 1)替换为if (j == anArray.GetLength(1) - 1)

public string myMethod(int[,] anArray)
{
string aString = "";
for (int i = 0; i < anArray.GetLength(0); i++)
{
for (int j = 0; j < anArray.GetLength(1); j++)
{
if (j == anArray.GetLength(1) - 1)
{
aString += anArray[i, j] + "rn";
continue;
}
aString += anArray[i, j] + "|";
}
}
return aString;
}

最新更新