代码之家  ›  专栏  ›  技术社区  ›  crichavin

是否可以在list.convertall中将其他参数传递给转换器

  •  0
  • crichavin  · 技术社区  · 7 年前

    引用 CovertAll .

    似乎没有办法,但我有一个值需要在列表中不属于源列表的每个元素中更新。我在这个项目中还有很多其他地方使用 .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 回复  |  直到 7 年前
        1
  •  3
  •   canton7    7 年前

    当然,只要使用一个lambda表达式 storeFront.Id :

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

    毕竟, orders.ConvertAll(Foo) 或多或少只是 orders.ConvertAll(order => Foo(order)) .