在初始值设定项块内传递调用对象
本文关键字:调用 对象 | 更新日期: 2023-09-27 17:59:27
我正在使用Select()
linq语句创建一个具有Child
集合的IEnumerable<Parent>
。我希望能够在启动器块内将Parent传递给Child。
class Parent
{
IEnumerable<Child> Children { get; set; }
}
class Child
{
Parent Parent { get; set; }
}
//This is what i want to do
someList.Select(x => new Parent
{
Children = x.childList.Select(c => new Child
{
Parent = //How do i get this?
}
});
不能这样做,因为在Select
实例化子对象时,Parent
对象尚未初始化。从本质上讲,这是一个鸡和蛋的问题。
但是,您可以使用带大括号的委托,如下所示:
x => {
var p = new Parent();
p.Children = x.childList.Select(
c => new Child { Parent = p }
);
return p;
}