在unity3d中将字符串转换为int时出现C#错误
我在使用C#时遇到了一个问题,我试图创建一个包含我所需的所有信息的列表或数组 0000、00010002等 我想将其放入一个列表/数组中,并使用此信息在角色选择屏幕上实例化一个模型。然而,这是代码的一部分,所有的事情都开始变得一团糟 我只是试着读出这些数字并把它们加到列表中在unity3d中将字符串转换为int时出现C#错误,c#,arrays,string,list,unity3d,C#,Arrays,String,List,Unity3d,我在使用C#时遇到了一个问题,我试图创建一个包含我所需的所有信息的列表或数组 0000、00010002等 我想将其放入一个列表/数组中,并使用此信息在角色选择屏幕上实例化一个模型。然而,这是代码的一部分,所有的事情都开始变得一团糟 我只是试着读出这些数字并把它们加到列表中 void Start () { gestureListener = this.GetComponent<GestureListener>(); for (int i = 0; i <
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;
}
}
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;
}
}
错误发生在第5行,但对我来说这似乎是一条不可替代的线
变量B是一个字符串
,因此我不知道为什么列表将其视为int
如果你能帮忙,请告诉我,非常感谢 如果您试图实例化一个列表,然后将元素添加到此列表中,那么您就搞错了。您当前正在实例化一个新列表,每次迭代时只包含一个元素。换句话说,您并不是在使用列表,而是在每次循环时创建一个新列表 在循环外部创建字符串列表,然后从循环内部添加到其中 您应该有这样的内容来填充列表
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;
}
}
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;
}
}
如果你需要更多的例子,看看
这是一个统一的概念。void Start(){
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.
}
gestureListener=this.GetComponent();
List myList=新列表();
对于(int i=0;i
不要在循环中创建新列表。按照现在的方式,您正在尝试创建一个新的列表(无论如何,您都会将其丢弃),该列表具有逐渐增大的空字符串数组。例如,如果numberOfModels
值为100,您将拥有100个!列表中的空字符串元素(如果已保存)
只需在for循环外创建一个列表,然后将字符串
b
添加到循环内的列表中。这部分的问题在于:newstring[b]
@Dmitryb
是一个字符串,这也不起作用。你是说i
?因为如果我用b替换新字符串[b],它会给我这个错误:错误CS1502:与'System.Collections.Generic.List.List(System.Collections.Generic.IEnumerable)最匹配的重载方法'有一些无效的参数我正在与kinect合作,我正在尝试实现一个角色选择,该选择会对刷卡动作做出反应,每次我运行forloop时,它都必须实例化下一个数字。我的代码与Ron Beyer相同,如果没有帮助,是什么让你接受这个答案的?在进入循环之前,您的数字集合将被实例化,在循环内部,您只需向集合添加一个数字,然后中断循环,这种逻辑毫无意义。你到底想在这里做什么,试着更好地分解它,也许我们可以更好地帮助你;我使用了你的答案,因为在我画出我希望代码如何循环后,我得出结论,你的答案是最好的,因此我在这个案例中接受你的答案。我编写了我的代码,所以这个forloop会提取我层次结构中的所有模型数量,并将它们放在一个列表中。然后我使用第二个变量来计算刷卡次数,并使用这个数字从forloop中选择数字,这使我每次都能得到正确的型号,其中有一个自动块,可以检查新型号,这样我就不必每次都手动添加所有内容了。非常感谢你的回答,这对我帮助很大@尼尔斯很高兴你让它工作,也很乐意帮忙。谢谢你的回答,因为它让我明白了我真正需要的是什么。