我在使用C#与Unity有问题时,我正在尝试创建一个包含我需要的所有信息的列表或数组。
<00> 0000,0001,0002等
我想将它放入List / Array并使用此信息在字符选择屏幕上实例化模型。但是,这是代码的一部分,一切都开始变得混乱。
我只是想读出数字并将它们添加到列表中。
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
。
如果你能提供帮助,请告诉我,非常感谢!
答案 0 :(得分:2)
如果您尝试实例化列表然后将元素添加到此列表中,那么您就错了。您当前正在实例化每个迭代时只有一个元素的新列表。换句话说,您不是要使用列表,而是每次循环时只创建一个新列表。
在循环外创建字符串列表,然后从循环内部添加它。
你应该有这样的东西来填充列表。
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.
}
。然后,您可以迭代该集合以查看已推送的所有元素。
string remoteUri = @"http://download.finance.yahoo.com/d/quotes.csv?s=%40%5EDJI,aapl&f=o&e=.csv";
string fileName = @"c:\aapl.csv";
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
// Download the Web resource and save it into the current filesystem folder.
myWebClient.DownloadFile(remoteUri, fileName);
如果您需要更多示例,请查看DotNetPerls List Examples 考虑到Unity,这个video example。
答案 1 :(得分:2)
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
添加到循环内的列表中。