我有一个应用程序将解析excel文件并添加一列,然后生成一个包含结果的新CSV文件。我能够在文件中创建我想要的项目列表,但我无法弄清楚如何将该列表传递给生成新文件的方法。
我有以下课程:
public class LocationData
{
public string PostalCode { get; set; }
public string Partner { get; set; }
public string LocationID { get; set; }
public string Name { get; set; }
public string Country { get; set; }
public string Market { get; set; }
}
和以下代码将数据放入列表中:
LocationData Locationdata = new LocationData()
{
PostalCode = location[0],
Partner = location[1],
LocationID = location[2],
Name = location[3],
Country = location[4],
Market = repository.GetMarketsForPostalCode(location[0])
}
我也有创建csv的方法,我需要传递列表信息,但是我收到错误:
foreach语句无法对“app.LocationData”类型的变量进行操作,因为“app.LocationData”不包含“GetEnumerator”的公共定义
答案 0 :(得分:0)
我认为你误解了C#中的列表是什么。我认为您需要List
数据类型。试试这个:
List<string> Locationdata = new List<string>()
{
location[0],
location[1],
location[2],
location[3],
location[4],
repository.GetMarketsForPostalCode(location[0])
};
答案 1 :(得分:0)
您的csv功能将如下所示
public void GenerateCSV(List<LocationData> data)
{
foreach (LocationData d in data)
{
//put line in csv as
string s = d.PostalCode + "," d.Partner + _"," + d.LocationID...... + Environment.NewLine;
}
}
您的班级声明将保持不变
public class LocationData
{
public string PostalCode { get; set; }
public string Partner { get; set; }
public string LocationID { get; set; }
public string Name { get; set; }
public string Country { get; set; }
public string Market { get; set; }
}
现在您需要先在列表中添加所有数据 你会做这个
List<LocationData> lst = new List<LocationData>();
LocationData ld = new LocationData();
ld.LocationID = "0";
ld.Market = "market";
lst.Add(ld);
........
GenerateCSV(lst);