【发布时间】:2021-07-03 23:24:27
【问题描述】:
上下文
- 我有一个
List<T>类型为Question。 -
Question类又包含一个List<Answer>。 -
Answer类有一个名为public Question Question { get; set; }的成员,其中存储了答案所针对的问题。
我正在使用集合初始化语法将Question 项添加到列表和对象初始化以创建新的Question。在这样做的同时,我还使用对象初始化语法(嵌套)创建了新的 Answer 对象。
问题
如何将内部Answer 类的Question 成员设置为引用封闭的Question 对象?我知道创建Answer 的时间点,Question 甚至没有完全初始化。但是有什么方法可以获取外部Question 实例,以便我可以将其设置为内部Answer。
代码
private List<Question> questions = new()
{
new Question
{
Id = 1,
Text = "Test Question 1",
Difficulty = QuestionDifficulty.Easy,
Answers =
{
new Answer { Id = 1, Question = [?] },
new Answer { Id = 2, Question = [?] } // What should replace [?] here?
}
}
};
【问题讨论】:
-
为什么需要这样做?它创建了一个冗余的数据结构,将来可能会导致错误。计算父节点比存储它更好。
标签: c# this object-initializers collection-initializer