【发布时间】:2016-07-09 12:06:36
【问题描述】:
我有一个巨大的 csv 文件,其中包含如下行:
CityName CityCode DistrictName ZipCode
Adana 1 Çukurova 1780
Adana 1 Feke 1660
Adana 1 İmamoğlu 1700
您认为只有 Districtname 和 zipcode 列值在大多数行中更改前两行相同,因此我对此数据的模型定义:
public class City
{
public string name { get; set; }
public int cityCode { get; set; }
public List<District> districts { get; set; }
}
public class District
{
public string district { get; set; }
public string zipCode { get; set; }
}
现在我想知道如何读取这些数据并将其加载到列表中:
string[] lines = System.IO.File.ReadAllLines(fullName);
IQueryable<City> cities = lines.Skip(1).Select(l => new City
{
name = l.Split(',')[0],
cityCode = Convert.ToInt32(l.Split(',')[1]),
..
}).AsQueryable();
我怎样才能做到这一点?
【问题讨论】:
-
使用我的 CSV 阅读器,它使用 oledb 读取数据表。 stackoverflow.com/questions/30129406/…
-
谢谢,但这只会读取列名,如何在列表中填写行?
-
它使用 oledb 将所有内容读入数据表。 csv 文件中有空行吗?
-
不,我不知道,foreach 循环中只发生了 4 次迭代。我怎样才能看到内容?
-
foreach 只是为列名添加下划线。表的行是对 csv 数据库的查询。是的,从技术上讲,csv 是一个数据库。