gpt4 book ai didi

c# - LINQ 查询语法是否可以实现基于工厂的对象构造和属性分配?

转载 作者:太空宇宙 更新时间:2023-11-03 17:02:06 25 4
gpt4 key购买 nike

我有一个类似于以下内容的 LINQ 查询(为简洁起见删除了过滤器等)

var orderLines = 
from line in lines
select new OrderLine {
Prop1 = line[0],
Prop2 = line[1],
// ... possibly 1-3 more properties are initialized
};

非常简单、有用的对象初始化器语法使一切变得清晰。不幸的是,我需要更改 OrderLine 类的构造(以包括对其所属订单的引用),因此我将默认构造函数设为私有(private)并公开工厂方法。我不知道如何使用 LINQ 查询语法调整我的查询,所以我切换到方法语法:

var orderLines = 
lines.Select(line => {
var orderLine = Order.CreateOrderLine();
orderLine.Prop1 = line[0];
orderLine.Prop2 = line[1];
return orderLine;
});

在这种情况下是否可以使用查询语法?如果是这样,那又如何呢?提前致谢。

最佳答案

您可以将 Order.CreateOrderLine 方法的签名更改为以下内容:

//change object for type of Props
public static Order CreateOrderLine(object prop1, object prop2)
{
//make assignments here
}

关于c# - LINQ 查询语法是否可以实现基于工厂的对象构造和属性分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23996941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com