【问题标题】:Map List Data (Sub List Data) C#地图列表数据(子列表数据)C#
【发布时间】:2016-11-04 17:19:54
【问题描述】:

我对多个数据有一些问题。

我将在这里添加我的示例。

foreach (HotelPaxRoom c in h.PaxRoomSearchResults)
{
  int index = c.index;
  foreach (RoomCategory a in c.RoomCategories)
    {
             HRoom room = new HRoom();
             room.id = a.id;
             room.category = a.category;
             room.price = a.price;
             room.index = c.index;
    }
}

实际上 PaxRoomSearchResults 有数据列表。我将 PaxRoomSearchResults 称为 A 在 PaxRoomSearchResults 里面有 RoomCategories List 我将 RoomCategories 称为 B

我想用这个逻辑读取数据。

A[0] 与 A[1] 的示例

  • A[0].B[0] ,A[1].B[0] ---(A[0] 索引和 B[0] 第一个索引)
  • A[0].B[1] ,A[1].B[1]
  • A[0].B[2] ,A[1].B[2]
  • A[0].B[3] ,A[1].B[3]

A[0] 与 A[1] 与 A[2] 的示例

  • A[0].B[0] ,A[1].B[0] ,A[2].B[0]
  • A[0].B[1] ,A[1].B[0] ,A[2].B[1]
  • A[0].B[2] ,A[1].B[0] ,A[2].B[2]
  • A[0].B[3] ,A[1].B[0] ,A[2].B[3]

  • A[0].B[0] ,A[1].B[1] ,A[2].B[0]
  • A[0].B[1] ,A[1].B[1] ,A[2].B[1]
  • A[0].B[2] ,A[1].B[1] ,A[2].B[2]
  • A[0].B[3] ,A[1].B[1] ,A[2].B[3]

  • A[0].B[0] ,A[1].B[2] ,A[2].B[0]
  • A[0].B[1] ,A[1].B[2] ,A[2].B[1]
  • A[0].B[2] ,A[1].B[2] ,A[2].B[2]
  • A[0].B[3] ,A[1].B[2] ,A[2].B[3]

顺其自然………… 实际上我无法使用我的 foreach through 来做到这一点。有没有更好、更准确/快速的方法来做到这一点?

这应该与 PaxRoomSearchResults 0th index.then 1,then2 类似地映射。

如果您对我的问题重新评分有任何问题,请询问。

实际上这个输出是我在 xml 反序列化之后得到的。所以我会添加它的一小部分。这会让你更好地理解

  <PaxRoomSearchResults>
                    <PaxRoom RoomIndex="1">
                        <RoomCategories>
                            <RoomCategory Id="xxx:rrrr:vvv:S7519:8456:115266">
                            </RoomCategory>
                        </RoomCategories>
                    </PaxRoom>
                    <PaxRoom RoomIndex="2">
                        <RoomCategories>
                            <RoomCategory Id="xxx:rrrr:vvv:S7519:8456:33689">
                            </RoomCategory>
                            <RoomCategory Id="xxx:rrrr:vvv:S7519:8456:33707">
                            </RoomCategory>
                            <RoomCategory Id="xxx:rrrr:vvv:S7519:8456:33695">
                            </RoomCategory>
                            <RoomCategory Id="xxx:rrrr:vvv:S7519:8456:115266">
                            </RoomCategory>
                        </RoomCategories>
                    </PaxRoom>

结果应该是这样的

我有这样的单独模型。

Public RoomGroup Class
  {
     public  int id {get;set;}
     public  List<RoomDetails> roomdetails{get;set;}
  }
  Public RoomDetails Class
  {
     public string roomcategoryID{get;set;}
     public decimal roomPrice{get;set;}
  }

输出会是这样的

房间组 1 房间类别 ID 001:AMB1:7736:S7519:8456:115266 roomcategoryID 001:AMB1:7736:S7519:8456:33689

房间组 2 房间类别 ID 001:AMB1:7736:S7519:8456:115266 roomcategoryID 001:AMB1:7736:S7519:8456:33707

房间组 3 房间类别 ID 001:AMB1:7736:S7519:8456:115266 roomcategoryID 001:AMB1:7736:S7519:8456:33695

房间组 4 房间类别 ID 001:AMB1:7736:S7519:8456:115266 roomcategoryID 001:AMB1:7736:S7519:8456:115266

【问题讨论】:

  • 是的。使用 for 循环而不是 foreach
  • 请展示您的 PaxRoomSearchResults 类的布局,并提供一些示例输出。
  • @JimMischel 实际上,由于 xml 响应反序列化,我的课程有点复杂。但我确实添加了我需要映射的示例 xml 响应。使用我之前的示例示例,我想你可以弄清楚.如果不是请告诉我
  • 我假设 XML 是您算法的输入。你希望输出是什么?
  • @JimMischel 我也更新了我的输出样本。你能检查一下吗。

标签: c# algorithm logic


【解决方案1】:

不完全确定你想要什么。也许是这样:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<RoomGroup> roomGroup = new List<RoomGroup>() {
                new RoomGroup() {
                    id = 1,
                    roomdetails = new List<RoomDetails>() {
                        new RoomDetails() {
                            roomcategoryID = "001:AMB1:7736:S7519:8456:115266"
                        },
                        new RoomDetails() {
                            roomcategoryID = "001:AMB1:7736:S7519:8456:33689"
                        },
                    }
                },
                new RoomGroup() {
                    id = 2,
                    roomdetails = new List<RoomDetails>() {
                        new RoomDetails() {
                            roomcategoryID = "001:AMB1:7736:S7519:8456:115266"
                        },
                        new RoomDetails() {
                            roomcategoryID = "001:AMB1:7736:S7519:8456:33707"
                        },
                    }
                },
                new RoomGroup() {
                    id = 3,
                    roomdetails = new List<RoomDetails>() {
                        new RoomDetails() {
                            roomcategoryID = "001:AMB1:7736:S7519:8456:115266"
                        },
                        new RoomDetails() {
                            roomcategoryID = "001:AMB1:7736:S7519:8456:33695"
                        }
                    }
                },
                new RoomGroup() {
                    id = 4,
                    roomdetails = new List<RoomDetails>() {
                        new RoomDetails() {
                           roomcategoryID = "001:AMB1:7736:S7519:8456:115266"
                        },
                        new RoomDetails() {
                           roomcategoryID = "001:AMB1:7736:S7519:8456:115266"
                        }
                    }
                }
            };

            foreach (RoomGroup group in roomGroup)
            {
                string output = string.Format("RoomGroup {0} {1}", 
                        group.id.ToString(),
                        string.Join(" ", group.roomdetails.Select(x => "roomCategoryID " + x.roomcategoryID).ToArray())
                        );
                Console.WriteLine(output);
                Console.WriteLine();
            }
            Console.ReadLine();
        }
    }
    public class RoomGroup
    {
       public  int id {get;set;}
       public  List<RoomDetails> roomdetails{get;set;}
    }
    public class RoomDetails
    {
       public string roomcategoryID{get;set;}
       public decimal roomPrice{get;set;}
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 2018-04-14
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    相关资源
    最近更新 更多