JsonSerializer.Deserialize 多次使用

JsonSerializer.Deserialize Many Time Use

我有这个代码

        IssueRequest issueRequest = new IssueRequest
        {
            hotelCode = model.Criteria.Code,
            rooms = model.BookingOption.Rooms.Select(a => new RequestIssue
            {
                code = JsonSerializer.Deserialize<MyBag>(a.HotelRoom.myBag).code,
                contractCode = JsonSerializer.Deserialize<MyBag>(a.HotelRoom.myBag).contractCode,
                mealPlanCode = a.HotelRoom.MealPlan.Code,
                MyData = new Rooms
                {
                    RoomCode = JsonSerializer.Deserialize<MyBag>(a.Room.myBag).code,
                }
            }).ToArray()
        };

我用三遍来JsonSerializer.Deserialize 你有改善这个的想法吗?

您可以使用 statement lambda:

rooms = model.BookingOption.Rooms.Select(a => 
    {
        var deserialized = JsonSerializer.Deserialize<MyBag>(a.HotelRoom.myBag);
        return new RequestIssue
            {
                code = deserialized.code,
                contractCode = deserialized.contractCode,
                mealPlanCode = a.HotelRoom.MealPlan.Code,
                MyData = new Rooms
                {
                    RoomCode = JsonSerializer.Deserialize<MyBag>(a.Room.myBag).code,
                }
            };
     })
     .ToArray()