我可以使用LINQ从现有列表中创建对象的新列表吗?

时间:2018-10-12 10:09:27

标签: c# linq foreach

我有一个包含开始日期和结束日期的发票清单。我可以使用LINQ从发票清单中获取所有开始日期和结束日期并将其放入Period类型的新列表中吗:

Period(DateTime startDate, DateTime endDate) {};

我可以使用foreach来执行此操作,如下所示,但想知道是否有更好的方法来使用LINQ。

foreach(Invoice invoice in invoices)
{
    periods.Add(new Period(invoice.StartDate, invoice.EndDate));
}

1 个答案:

答案 0 :(得分:4)

如果要创建新的期间清单:

List<Period> periods = invoices.Select(i => new Period(i.StartDate, i.EndDate)).ToList();

如果要将发票项目附加到现有期间清单中:

periods.AddRange(invoices.Select(i => new Period(i.StartDate, i.EndDate)));