[問題] 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