用户数据的列表元素索引
Index of list elements for user data
我有一个具体问题:
在我的游戏中,不同的用户可以将帐户添加到基于本地的应用程序。基本上我想将姓名、分数和选择的头像图像保存到三个不同的列表中。但我意识到以下几点:
当向名为userScore 的列表添加一个值(f.e."0") 时,unity 在同一索引处调试相同的值,但计数值是正确的。假设我在我的 userScore 列表中添加了五次“0”,userScore.Count = 5,但是当我使用以下调试代码时:
for (int i = 0; i < userScore.Count; i++)
{
Debug.Log("Score " + userScore[i] + "with Index " + userScore.IndexOf(userScore[i]) );
}
我得到索引为 0 的结果 0(五次)- 但它应该是
0 索引为 0
索引为 1 的 0
0 与索引 2
0 索引为 3
0 索引为 4
谁能解释一下为什么?有人有更好的主意来制作具有特定值的玩家统计数据吗?可以添加和删除用户,所以我必须有一个动态系统,我可以在其中获取玩家姓名、分数和选择的头像。在我看来,我会用这些列表来实现这一点,但可能有更好的方法。
非常感谢!
为什么要把事情弄复杂?
for (int i = 0; i < userScore.Count; i++)
{
Debug.Log("Score " + userScore[i] + "with Index " + i );
}
如 documentation IndexOf
return 中所示,列表中 第一次出现 值的索引。如果你有一个包含 [1, 1, 1, 1]
的列表,调用 IndexOf(1)
将 return 0,因为在索引 0 处找到 1,无论你调用多少次 IndexOf
我建议您使用结构 / class 来包含您的用户数据,因为您打算操纵更多信息:
public struct UserData
{
public int ID;
public string Name;
public int Score;
public int AvatarIndex;
}
// ...
public List<UserData> UserData;
for (int i = 0; i < UserData.Count; i++)
{
Debug.Log("Score " + UserData.Score[i] + "with Index " + i );
}
我有一个具体问题:
在我的游戏中,不同的用户可以将帐户添加到基于本地的应用程序。基本上我想将姓名、分数和选择的头像图像保存到三个不同的列表中。但我意识到以下几点:
当向名为userScore 的列表添加一个值(f.e."0") 时,unity 在同一索引处调试相同的值,但计数值是正确的。假设我在我的 userScore 列表中添加了五次“0”,userScore.Count = 5,但是当我使用以下调试代码时:
for (int i = 0; i < userScore.Count; i++)
{
Debug.Log("Score " + userScore[i] + "with Index " + userScore.IndexOf(userScore[i]) );
}
我得到索引为 0 的结果 0(五次)- 但它应该是
0 索引为 0 索引为 1 的 0 0 与索引 2 0 索引为 3 0 索引为 4
谁能解释一下为什么?有人有更好的主意来制作具有特定值的玩家统计数据吗?可以添加和删除用户,所以我必须有一个动态系统,我可以在其中获取玩家姓名、分数和选择的头像。在我看来,我会用这些列表来实现这一点,但可能有更好的方法。
非常感谢!
为什么要把事情弄复杂?
for (int i = 0; i < userScore.Count; i++)
{
Debug.Log("Score " + userScore[i] + "with Index " + i );
}
如 documentation IndexOf
return 中所示,列表中 第一次出现 值的索引。如果你有一个包含 [1, 1, 1, 1]
的列表,调用 IndexOf(1)
将 return 0,因为在索引 0 处找到 1,无论你调用多少次 IndexOf
我建议您使用结构 / class 来包含您的用户数据,因为您打算操纵更多信息:
public struct UserData
{
public int ID;
public string Name;
public int Score;
public int AvatarIndex;
}
// ...
public List<UserData> UserData;
for (int i = 0; i < UserData.Count; i++)
{
Debug.Log("Score " + UserData.Score[i] + "with Index " + i );
}