我有三个不同List<string>
的长度相等的 s,它们包含不同类型的数据。例如:
List<string> dates = new List<string>() { "20120301", "20120401", "20120501", "20120601", "20120701"};
List<string> times = new List<string>() { "0500", "0800", "0100", "1800", "2100" };
List<string> quantities = new List<string>() { "1", "2", "1", "3", "1" };
实际数据可以是任何数据,但列表始终具有相同的长度。我想将它们合并为一个List<DTQ>
.
public struct DTQ
{
DateTime dt;
double q;
public DTQ(DateTime dt, double q) { this.dt = dt; this.q = q; }
}
有没有办法用 lambda 函数做到这一点?到目前为止,我已经设法创建了一个 lambda 函数,该函数描述了如果数据是 3strings
而不是List<string>
s,我将如何映射数据:
Func<string, string, string, DTQ> mergeFields = (d, t, q)
=> new DTQ(DateTime.ParseExact(string.Format("{0}{1}", d, t), "yyyyMMddhhmm", CultureInfo.InvariantCulture), double.Parse(q));
不过,我不确定我能从那里去哪里。这个想法是将此函数应用于列表的每个索引。