【发布时间】:2015-04-01 16:54:07
【问题描述】:
我正在尝试编写一个 linq 查询来进行非常基本的连接。我有两个数组
Park[] parks = new Park[]{
new Park() {ID = 1, Name = "Free Park"},
new Park() {ID = 2, Name = "Cost Park"},
new Park() {ID = 3, Name="Sneak in Park"}
};
和
Facility[] facilities = new Facility[] {
new Facility() { ID = 1, Name = "Swing", MinimumAge = 1, MaximumAge = 120},
new Facility() { ID = 2, Name = "Slide", MinimumAge = 1, MaximumAge = 200},
new Facility() { ID = 3, Name = "See-Saw", MinimumAge = 1, MaximumAge = 300}
};
每个公园可以有0...n设施,因此我们有一组映射对象
ParkFacility[] associations = new ParkFacility[] {
new ParkFacility() {ParkID = 1, FacilityID = 1},
new ParkFacility() {ParkID = 1, FacilityID = 2},
new ParkFacility() {ParkID = 1, FacilityID = 3},
new ParkFacility() {ParkID = 2, FacilityID = 1},
new ParkFacility() {ParkID = 3, FacilityID = 2}
};
这是Park类的定义
class Park
{
public int ID { get; set; }
public String Name { get; set; }
public Facility[] Facilities { get; set; }
}
是否可以仅使用连接并将适当的设施与公园相关联?即将 Park 中的 Facilities 数组设置为使用 associations 适当映射的数组?
编辑:到目前为止我的研究..
var x_temp = from g in parks
join j in associations on g.ID equals j.ParkID into h
select new Park()
{
Name = g.Name,
ID = g.ID,
Facilities = (from u in h join m in facilities on u.FacilityID equals m.ID select m).ToArray()
};
我尝试使用 sub-linq 查询并且它可以工作,但我正在寻找一个只有 连接的解决方案
【问题讨论】:
-
到目前为止您尝试过什么?您当前尝试使用
Join时遇到了什么问题?您对如何使用Join操作进行了哪些研究,具体而言,它如何未能帮助您解决问题。 -
添加了它,我会及时通知你更多我的工作:)