[英]Passing a generic list to a method
我有一个应用程序,它将解析一个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”的公共定义
我认为您误会了C#中的列表。 我认为您需要使用List
数据类型。 尝试这个:
List<string> Locationdata = new List<string>()
{
location[0],
location[1],
location[2],
location[3],
location[4],
repository.GetMarketsForPostalCode(location[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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.