繁体   English   中英

将通用列表传递给方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM