有没有一种方法可以将其他参数传递给List.ConvertAll中的Converter

时间:2019-02-09 18:32:04

标签: c# generics

引用CovertAll

似乎没有办法,但是我有一个值需要在不属于源列表的列表的每个元素中进行更新。在该项目中,我还有许多其他地方使用.ConvertAll,但在这一地方我需要传递一个附加参数,并希望使用.ConvertAll使其保持一致。

。即寻找这样的东西: lstNewStoreFrontOrders.ConvertAll(Order.ConvertToOrderDto(storeFront.Id))

public static OrderHeaderImportDTO ConvertToOrderDto(Order storeFrontOrder, int storeFrontId)
{
    var orderHeader = new OrderHeaderImportDTO() {
        StatusId = ORDER_CREATED,
        StoreFrontId = storeFrontId,
        .....
}

1 个答案:

答案 0 :(得分:3)

当然,只需使用捕获storeFront.Id的lambda表达式即可:

lstNewStoreFrontOrders.ConvertAll(order => Order.ConvertToOrderDto(order, storeFront.Id))

毕竟,orders.ConvertAll(Foo)或多或少是orders.ConvertAll(order => Foo(order))的简写。