1

我正在尝试在 Windows Phone 7 中解析和读取文本文件。这是文本文件的格式(实际上有 44 个条目):

Millbrae,37.600322,-122.386735
SFO,37.61636,-122.391027
San Bruno,37.638262,-122.416513
South SF,37.664264,-122.444043

这是我的代码:

var foo=Application.GetResourceStream(new Uri("stations.txt", UriKind.Relative));
        StreamReader streamReader = new StreamReader(foo.Stream);
        string x;
        int k;

            while ((x = streamReader.ReadLine()) != null)
            {
                string[] items = x.Split(',');
                   for (k = 0; k < 43; k++)
                 {

                     cities[k] = (items[0]);

                 }//for*/
            }//while

            for (k = 0; k < 43; k++)
            {
                MessageBox.Show(cities[k]);
            }

最后的最后一个消息框仅用于调试-我试图确保将所有城市读入称为城市的字符串数组。但是,当我输出城市数组时,我得到的只是文本文件中的最后一个值,对于所有 44 个条目。

谁能指出我做错了什么?我不确定我如何在最后一个城市阅读每个值。谢谢!

4

1 回答 1

1

您在城市数组的所有 44 个条目中设置了 44 次同一个城市。
然后你对下一行重复相同的模式并在最后一行停止。所以你只用最后一个条目填充数组。

      k = 0;
      while ((x = streamReader.ReadLine()) != null) 
      { 
            string[] items = x.Split(','); 
            if( k <= 44)
            {
                 cities[k] = (items[0]); 
                 k++;
            }
        }//while 

删除城市上的 for 循环并保留手动增量 var 即可解决问题。当然,我假设城市数组在某处声明为

   string[] cities = new string[44]();

添加了一个 if 语句来检查超出范围的索引。

于 2012-06-18T22:46:41.983 回答