我正在尝试为我的系统使用jquery DataTables插件,使用webservice通过ajax调用来填充数据。
我需要从网络服务返回的是这样的列表:List<List<string>>;
我有大约120个不同的域类被它用作核心数据对象,所以我需要某种系统,我可以从不同的域类中获取数据并将它们转换为List<List<string>>
自动方式。
我获取数据的方式是这样的(示例代码):
List<Core.Room> coreDataList = Core.GetRoomsInHotel(int hotelID);
我一直在研究DynamicLinq和System.Reflection,但已经无处可寻:(
更新:
我需要从webservice返回的是这样一个数组:
[
["data-col-1","data-col-2","data-col-3","data-col-4"],
["data-col-1","data-col-2","data-col-3","data-col-4"],
["data-col-1","data-col-2","data-col-3","data-col-4"]
]
要填充此数组,我有大约120个不同属性的域类列表,我需要动态访问每个类的属性:
对于一个房间,基于这样的物体:
public class Room {
public int ID { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public string LongName { get; set; }
}
[
["ID", "Double","DBL"],
["ID", "Single","SNG"],
["ID", "Suite","SUI"]
]
对于酒店:
public class Hotel {
public int ID { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public int RoomCount { get; set; }
public int FloorCount { get; set; }
}
[
["1","Plaza","153","12"],
["2","Astoria","568","25"]
]
我有一个带有配置列表的XML文件:
<list id="29">
<readable_name>Hotels - Roomtypes - List all roomtypes in system</readable_name>
<no_data_message>No roomtypes found</no_data_message>
<cols>
<col width="0" visible="false" datafield="ID" type="key" headertext="ID" />
<col width="70" visible="true" datafield="Name" type="string" headertext="Name" />
<col width="30" visible="true" datafield="Type" type="string" headertext="Type" />
</cols>
</list>
所以我根据我要加载的列表从XML文件中提取配置。我根据列表ID调用数据存储,并获取我想要的任何域类的列表(房间/酒店)。我查看返回的列表并生成一种数组,以便填充页面上的列表。
我希望这能澄清一些事情......
答案 0 :(得分:2)
List<Core.Room> coreDataList = Core.GetRoomsInHotel(int hotelID);
List<string> coreDataStrList = coreDataList
.Select(room => room.ToString())
.ToList();
除此之外,我们还需要有关您代码的更多信息。
更新:
List<string> ToStringList<T>(this IEnumerable<T> list)
{
list.Select(obj => obj.ToString()).ToList();
}
List<Core.Room> coreRoomList = ...
List<Core.Hotel> coreHotelList = ...
List<List<string>> ListofLists = new List<List<string>> ();
ListofLists.Add(coreRoomList.ToStringList());
ListofLists.Add(coreHotelList.ToStringList());
(如果你一次给我们提供一行代码,那将是一种帮助。这120个列表是否以某种方式分组?他们是否有共同的基础?