[英]Newline character not being added to string
這是我的測試代碼
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] + "\r\n";
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|
謝謝。
編輯:如果條件愚蠢的錯誤,僅此而已。
第2次編輯:我在代碼的后半部分使用了錯誤的if條件語句,從而導致了錯誤的字符串。
字符串是不可變的,效率很低。
StringBuild sb = new StringBuilder();
for ()
{
sb.AppendLine(" " + anArray[i, j]);
}
根據評論
anArray.GetLength(1)
anArray.Length
不一樣
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] + "\r\n";
continue;
}
aString += anArray[i, j] + "|";
}
}
return aString;
}
代碼應如下所示:
if (j == anArray.GetUpperBound(1))
{
aString += anArray[i, j] + "\r\n";
continue;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.