在unity3d中将字符串转换为int时发生C#错误
本文关键字:错误 int unity3d 字符串 转换 | 更新日期: 2023-09-27 18:14:29
我在使用C#的Unity中遇到问题,我正试图创建一个包含所有信息的List或Array。
0000、00010002等
我想把它放在一个列表/数组中,并使用这些信息在角色选择屏幕上实例化一个模型。然而,这是代码中一切都开始变得一团糟的部分。
我只是想读出这些数字,然后把它们加到清单上。
void Start () {
gestureListener = this.GetComponent<GestureListener>();
for (int i = 0; i < numberOfModels; i++) {
string b = i.ToString("0000");
List<string> mylist = new List<string>(new string[b]);
Debug.Log (mylist);
break;
}
}
我得到这个错误:
error CS0029: Cannot implicitly convert type `string' to `int'
错误发生在第5行,但对我来说,这似乎是一条不可替代的行。。。
变量B是一个string
,所以我不知道为什么列表会把它看作int
。
如果你能帮忙,请告诉我,非常感谢!
如果您试图实例化一个列表,然后向该列表中添加元素,那么您就错了。您当前正在实例化一个新列表,每次迭代时只使用一个元素。换句话说,您并不是在使用列表,只是在每次循环时创建一个新列表。
在循环外创建字符串列表,然后从循环内添加到该列表中。
您应该有这样的东西来填充列表。
void Start()
{
List<string> mylist = new List<string>();
gestureListener = this.GetComponent<GestureListener>();
for (int i = 0; i < numberOfModels; i++) {
string b = i.ToString("0000");
myList.Add(b);
Debug.Log (mylist);
break;
}
}
话虽如此,在for-loop
结束时,您的myList
将有一个models
集合。然后,您可以迭代该集合以查看您推送的所有元素。
foreach(var item in mylist)
{
//Do whatever with each Item.
}
如果您需要更多示例,请查看DotNetPerls列表示例以及这个视频例子中的Unity。
void Start () {
gestureListener = this.GetComponent<GestureListener>();
List<string> myList = new List<string>();
for (int i = 0; i < numberOfModels; i++) {
string b = i.ToString("0000");
myList.Add(b);
Debug.Log (mylist);
break;
}
//myList is populated with all the numberOfModels here.
}
不要在循环中创建新列表。按照您现在的做法,您正在尝试创建一个新的列表(无论如何都要扔掉(,该列表具有越来越大的空字符串数组。例如,如果numberOfModels
为100,则会有100!列表中的空字符串元素(如果已保存(。
只需在for循环外创建一个列表,然后将字符串b
添加到循环内的列表中。