代码重构。而不是在列表上使用foreach而是使用lambda表达式

时间:2016-02-23 08:54:24

标签: c# lambda

我在想是否可以使用像valueList.ForEach这样的lambda表达式简化这些代码行?我是lambda表达式的新手。

foreach (var item in OrderList)
{
    item.ReserveDate = DateTime.ParseExact(item.ReserveDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString();
    item.ExpireDate = DateTime.ParseExact(item.ExpireDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString();
}

1 个答案:

答案 0 :(得分:1)

你可以这样写,但我不知道它是否比foreach更具可读性:

OrderList.ForEach(item => {
    item.ReserveDate = DateTime.ParseExact(item.ReserveDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString();
    item.ExpireDate = DateTime.ParseExact(item.ExpireDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString();
});

除非您可以并行使用(但再次,可读性):

Parallel.ForEach(OrderList, item => {
    item.ReserveDate = DateTime.ParseExact(item.ReserveDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString();
    item.ExpireDate = DateTime.ParseExact(item.ExpireDate, "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToShortDateString();
});