适用于CSV文件的StreamReader ReadLine()

问题描述 投票:0回答:1

我正试图使用这段代码来创建一个列表。 它在NewCrime转换步骤中失败了。 不知道如何使用流阅读器。 这是我的第一次,我通常使用SQL,所以我试图做同样的事情,我会在这里阅读SQL。

List MasterCrimeList。

    public List<Crime.Crime> GetList()
    {
        MasterCrimeList = new List<Crime.Crime>();

        try
        {

            string path = @"F:\\FanshaweCollegeClasses\\Winter2020\\CLAYS_FINAL_EXAM_2020\\VANHEESfinalEXAM\\SacramentocrimeJanuary2006.csv";
            if (File.Exists(path))
            {
                // Open the file to read from.
                using (StreamReader sr = File.OpenText(path))
                {
                    string s;
                    while ((s = sr.ReadLine()) != null)
                    {

                        Crime.Crime NewCrime = new Crime.Crime(Convert.ToString(s[0]),//CrimeDateTime
                                              Convert.ToString(s[1]),//CrimeAddress
                                              Convert.ToInt32(Convert.ToString(s[2])),//CrimeDistrict
                                              Convert.ToString(s[3]),//CrimeBeat
                                              Convert.ToInt32(Convert.ToString(s[4])),//CrimeGrid
                                              Convert.ToString(s[5]),//CrimeDescription
                                              Convert.ToInt32(Convert.ToString(s[6])),//ncicCode
                                              decimal.Parse(Convert.ToString(s[7])),//Latitude DECIMAL
                                              decimal.Parse(Convert.ToString(s[8])));//Longitude DECIMAL

                        MasterCrimeList.Add(NewCrime);

                    }
                }
            }
        }
c# readline streamreader
1个回答
0
投票

当做 s[0] 你只读取了整行的一个字符。你应该做的是根据值的存储方式来分割每一行,使用的是 Split()然后你可以将每个值作为一个数组来访问。如果是csv文件。

                string s;
                while ((s = sr.ReadLine()) != null)
                {
                    string[] lineValues = s.Split(new char[]{','});
                    string firstValue = lineValues[0];
                    string secondValue = lineValues[1];
                    ...
                }
© www.soinside.com 2019 - 2024. All rights reserved.