我可以为匿名类型属性分配空值吗?

Ala*_*an2 26 c#

我在WebAPI中有以下内容转换为JSON字符串并发送到客户端:

return Ok(new
    {
        Answer = "xxx",
        Text = question.Text,
        Answers = question.Answers.Select((a, i) => new
        {
            AnswerId = a.AnswerId,
            AnswerUId = i + 1,
            Text = a.Text
        })
    });
Run Code Online (Sandbox Code Playgroud)

现在我意识到我想将值null赋给Answer.然而这给了我一个信息

cannot assign <null> to anonymous type property. 
Run Code Online (Sandbox Code Playgroud)

有没有办法我可以这样做,而不必定义一个类,所以我可以分配null?

Jon*_*eet 60

绝对 - 您只需要将null值强制转换为正确的类型,以便编译器知道您想要该属性的类型.例如:

return Ok(new {
    Answer = (string) null,
    Text = ...,
    ...
});
Run Code Online (Sandbox Code Playgroud)

  • @Anshul:嗯(int)null是无效的...但是如果您选择的类型是有效的,那么是的,它们是不同的,因为它们具有不同的编译时类型,这意味着匿名类型结果将具有不同的属性类型。 (2认同)