我在我的Web Api中使用此代碼從csv文件獲取數據,並將該數據插入到項目列表中。從C#中的CSV文件獲得列中的第一個值
private List<Item> ietms = new List<Item>();
public ItemRepository()
{
string filename = HttpRuntime.AppDomainAppPath + "App_Data\\items.csv";
var lines = File.ReadAllLines(filename).Skip(1).ToList();
for (int i = 0; i < lines.Count; i++)
{
var line = lines[i];
var columns = line.Split('$');
//get rid of newline characters in the middle of data lines
while (columns.Length < 9)
{
i += 1;
line = line.Replace("\n", " ") + lines[i];
columns = line.Split('$');
}
//Remove Starting and Trailing open quotes from fields
columns = columns.Select(c => { if (string.IsNullOrEmpty(c) == false) { return c.Substring(1, c.Length - 2); } return string.Empty; }).ToArray();
items.Add(new Item()
{
Id = int.Parse(columns[0]),
Name = columns[1],
Description = columns[2],
Price = string.IsNullOrEmpty(columns[3].Trim()) ? null : (double?)double.Parse(columns[3]),
Weight = columns[8],
PhotoUrl = columns[7],
Category=columns[9]
});
}
}
CSV文件中的一列/值的結構是這樣的:
Groups>Subgroup>item
或在某些情況下
MajorGroup|Groups>Subgroup>item
我怎麼以前僅抽出的第一個值>或|,以便在第一種情況下得到的值爲Groups
,第二種情況下爲MajorGroup
,並將其存儲在項目列表中的Category
屬性中,現在爲只需設置第9列中的整個值即可返回整個字符串「Groups> Subgroup> item」。
[強制'不推出自己的CSV parser'鏈接](http://secretgeek.net/csv_trouble.asp) – JMK