读取大文本文件并将信息存储在哈希表中?

时间:2018-04-07 11:42:54

标签: c# list unity3d hash gps

我使用unity和c#编写了一个程序,它使用我的android设备的gps位置,它检测我是否接近某个预定位置。 到目前为止,一切正常,程序会检测到所有预先定义的位置,并在我靠近它们时通知我。

我通过使用streamreader来创建一个字符串列表,逐行读取文本文件并将其存储在检查器中的元素中。

每次gps位置使用循环更改到列表末尾时,元素都会被读取,并且如果其中任何元素与gps位置匹配,则会检查元素。

我现在遇到的问题是我的数据库文本文件变得非常大,最终会出现错误,因为元素太多了。

文本文件格式如此

53.752 -2.481 Location1。

51.551 -3.271位置2.

55.932 -4.037 Location3

依旧......

数据库可以在1000个项目中,其中第一个数字是纬度,第二个是经度,第三个是描述

我的问题是哈希表最适合这个,如果是这样,我将如何将单独的项添加到列表中。我假设纬度和经度是关键,位置就是货币对。

我试图找到示例,但我发现所有信息都已添加到脚本中,即

    Hashtable mytable = new Hashtable();// create a new hashtable called mytable

    //add all the elements that you want in the format key followed by pair
    mytable.Add(1, "Location1");

而不是从文本文件中读取信息。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,所以这种方式似乎有效。感谢每一位人士的投入,这无疑使我朝着正确的方向前进。

public class Location : MonoBehaviour
{
   public int howmany;// how many lines are in the text file

  void Start()
    {
       List<string> fileLines = new List<string>(System.IO.File.ReadAllLines(Application.persistentDataPath + "\\" + "locationdatabase.txt"));
        howmany  = (fileLines.Count);
        Debug.Log(fileLines[4520]);// look at a particular line in the file
        Debug.Log(howmany);
}

}