在unity3d中将字符串转换为int时出现C#错误

时间:2015-09-25 15:12:27

标签: c# arrays string list unity3d

我在使用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

如果你能提供帮助,请告诉我,非常感谢!

2 个答案:

答案 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添加到循环内的列表中。