复杂的c#对象

本文关键字:对象 复杂 | 更新日期: 2023-09-27 18:13:10

我习惯了像下面这样制作JavaScript对象,但是用c#做同样的事情的最快方法是什么?它只是静态数据,将被序列化为不会更改的帖子。在过去的c#中,我会为所有东西创建类和列表,但在这个场景中,我只需要发送一些练习数据。如有任何帮助,不胜感激

            var data = {
                "dealer": {
                    "keyId": "vfase32sd",  
                     "name": "mark"
                },
                "seller": [
                    {
                        "email": "email@email.com",
                        "active":false
                    }
                ],
                "state": [
                    "TN",
                    "TX"
                ]};

复杂的c#对象

参见对象和集合初始化式

匿名类型的对象初始化式

虽然对象初始化器可以在任何上下文中使用,但它们在LINQ查询表达式。查询表达式经常使用匿名类型,只能通过使用对象进行初始化初始化器,如下面的声明所示。

var pet = new { Age = 10, Name = "Fluffy" };
例如:

var data = new
{
    dealer = new
    {
        keyId = "vfase32sd",
        name = "mark"
    },
    seller = new[] {
        new {
            email= "email@email.com",
            active= false
        }
    },
    state = new[]{
        "TN",
        "TX"
    }
};

将js对象转换为c#对象的规则很简单:

  • "x":将成为x=
  • {}将是new {}
  • []将变为new []{}
  • 值保持不变

可以使用c#的动态类型特性

var data = new 
{
    dealer = new 
    {
        keyId = "vfase32sd", 
        name =  "mark",
    },
    seller = new[] 
    {
        new 
        {
            email = "email@email.com",
            active = false
        }
    },
    state = new [] 
    {
        "TN",
        "TX"
    }
};