当 yIndex 是不同的字符串值 C#(Unity) 时,它不会递增



这是我的代码:

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

。虽然我承认你想做什么对我来说并不完全清楚。

最新更新