[问题] LINQ 子查询该如何写

楼主: OpenGoodHate (什么东西什么东西)   2014-04-09 12:07:47
研究了好久linq 子查询
google 都只有教在where 条件下的作法
自己写了一支在select 的时后子查询
但是动作确有错误
贴上程式码请有经验的板友指导一下
原始JSON
{
"is":false,
"lay":[
{
"des":"",
"id":"8891",
"Enable":true,
"glb":1
},
{
"des":"",
"id":"33456",
"Enable":true,
"glb":2
}],
"Urlist":[
{"glb":1,"Url":"http://tw.yahoo.com/YHO01"},
{"glb":2,"Url":"http://tw.yahoo.com/YHO09"}
]
}
目前LINQ 的写法
JObject layCount = resultJsObj;//上面的JSON 己在resultJsObj 中
var aa = from x in layCount["lay"]
select new { lay = x["id"],
glb = ( from y in layCount["Urlist"]
where ( int ) y["glb"] == ( int ) x["glb"]
select y["Url"])
};
我想要的输出
aa.lay => 8891
aa.glb => http://tw.yahoo.com/YHO01
aa.lay => 33456
aa.glb => http://tw.yahoo.com/YHO01
但是实际上 glb 字段这样的写法是错误的
想请问正确的linq 子查询 写法应该如何下才会正确作动
作者: AndyLeo (打败超越一切的人)   2014-04-09 14:17:00
要不要把两个from...的叙述句写在一起试试?应该要处理x["glb"]没有符合或符合多笔y["glb"]的情形

Links booklink

Contact Us: admin [ a t ] ucptt.com