我有以下创建csv的方法。使用Func <T, TResult>代表
var csv = new CsvResult<MatrixCampaignLine>(matrixCampaignLines, fileName, CsvHelper.GetMatrixHeader(), x => x.RegionName,
x => x.CustomerSku.ToString(),
x => x.ProductName.ToString(),
x => x.Quantity.ToString()
);
快乐的日子,直到我需要嵌套一个foreach内的最后一次属性调用。即我需要迭代通过matrixCampaignLines.Products。所以想象之后x.Quantity我加了这样的东西
x => x.Quantity.ToString(),
foreach(var products in x => x.ProductQuantites)
{
x.Quantity,
}
这里是调用的方法。
public CsvResult(IEnumerable<T> data, string fileName, List<string> headers, params Func<T, string>[] columns)
{
Data = data;
Columns = columns;
FileName = fileName;
Headers = headers;
}
编辑:
public IEnumerable<T> Data { get; private set; }
public Func<T, string>[] Columns { get; private set; }
public Func<T, string[]>[] Cols { get; private set; }
public string FileName { get; private set; }
public List<string> Headers { get; private set; }
public CsvResult(IEnumerable<T> data, string fileName, List<string> headers, string userName, params Func<T, string[]>[] columns)
{
Data = data;
Cols = columns;
FileName = fileName;
Headers = headers;
}
什么是你期待的是foreach循环实际上呢?目标并不清楚。 – 2010-11-17 12:29:10
看起来他想将一个数组转换为多个参数。据我所知这是不可能的,至少不是这样。 – 2010-11-17 12:49:18
给我们一个机会,并发布一个问题。 – greenoldman 2010-11-17 12:56:50