这是我的代码:
string[] newString = new string[4];
string[,] table = new string[70, 6];
string NewPreviousValue = "placeholder";
int xIndex = -1;
int yIndex = 0;
//i have 4 game tables but it doesn't really neccessary to show all the gametables because they're all the same
if (gametable_no == 1)
{
//this line of code print out all the GameTable_History Data
for (int i = 0; i < tzPlayInfo.Instance.bc_gametable_history_list.Count; i++)
{
newString[0] += tzPlayInfo.Instance.bc_gametable_history_list[i].r;
newString[0] += ",";
}
//seperated it by a comma delimeter
string[] newChars = newString[0].Split(',');
foreach (string previousValue in newChars)
{
if (table.GetLength(0) < xIndex)
{
break;
}
if (previousValue.Equals(NewPreviousValue) && table.GetLength(1) < yIndex)
{
yIndex += 1;
table[xIndex, yIndex] = previousValue;
}
else
{
xIndex += 1;
yIndex = 0;
table[xIndex, yIndex] = previousValue;
}
NewPreviousValue = previousValue;
}
}
游戏桌 1 历史 :
P ,B ,P ,B P,P ,P
此代码的问题在于yIndex
没有递增。我尝试调试 yIndex 的 xIndex 和它给我的上一个值。
让我们打印 XINDEX : 2 让我们打印 YINDEX:0 让我们打印表格[xIndex, yIndex] : P
让我们打印 XINDEX : 3 让我们打印 YINDEX:0 让我们打印表格[x索引,y索引]:B
让我们打印 XINDEX : 4 让我们打印 YINDEX:0 让我们打印表格[xIndex, yIndex] : P
让我们打印 XINDEX : 5 让我们打印 YINDEX:0 让我们打印表格[xIndex, yIndex] : B P
->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
让我们打印 XINDEX : 6 让我们打印 YINDEX:0 让我们打印表格[xIndex, yIndex] : P
让我们打印 XINDEX : 7 让我们打印 YINDEX:0 让我们打印表格[xIndex, yIndex] : P
这应该增加 YAXIS 值,因为它具有相同的值。
我在这里做的是,如果Gametable 1 History
中生成的值不同,那么它只会增加x axis
并且是成功的,但如果它们相同,则必须仅增加y axis
。
给定变量名称,我希望您打算NewPreviousValue
是"循环最后一次迭代中previousValue
的值"。但是,您从未设置过。这意味着您的状况
previousValue.Equals(NewPreviousValue)
除非previousValue
等于"占位符",否则永远不会是真的,这似乎不太可能。
我怀疑你只是错过了:
NewPreviousValue = previousValue;
作为循环中的最后一条语句。
(我还敦促您将其重命名为newPreviousValue
;在C#中,通常局部变量和参数以小写字母开头。不过,这与它是否有效无关。
条件的下一部分是这样的:
table.GetLength(1) < yIndex
使用您给出的值,table.GetLength(1)
将是 6 - 因此,如果yIndex
为 0,则条件始终为 false。此外,我认为您有一个错误。我怀疑您想将条件的该部分更改为
yIndex < table.GetLength(1) - 1
。虽然我承认你想做什么对我来说并不完全清楚。