2017-08-16 97 views
0

這是我的代碼。如何在mvc c#中編寫兩個JObjects的連接查詢?

var students={data:[{"name":"abc","id":"101","dept_id":"213"},{"name":"abc","id":"101","dept_id":"212"}]}; 
var departments={data:[{"name":"it","id":"212"},{"name":"csc","id":"213"}]} 

我有兩個JObjects像studentsdepartments。在學生數組中包含dept_id基於該值的鍵值dept_name鍵值爲departments數組。 我想得到這樣的輸出: -

var students={data:[{"name":"abc","id":"101","dept_id":"213","dept_name":"csc"},{"name":"abc","id":"101","dept_id":"212","dept_name":"it"}]}; 

回答

0

1:使用JArray在JObject代替:

var students = JArray.Parse("[{ \"name\":\"abc\",\"id\":\"101\",\"dept_id\":\"213\"},{ \"name\":\"abc\",\"id\":\"101\",\"dept_id\":\"212\"}]"); 
var departments = JArray.Parse("[{ \"name\":\"it\",\"id\":\"212\"},{ \"name\":\"csc\",\"id\":\"213\"}]"); 

2.加入:

// Method syntax 
var joined = students.Join(departments, s => s["dept_id"].Value<string>(), 
             d => d["id"].Value<string>(), 
             (s, d) => new { name = s["name"].Value<string>(), 
                 id = s["id"].Value<string>(), 
                 dept_id = s["dept_id"].Value<string>(), 
                 dept_name = d["dept_name"].Value<string>() }); 

編輯:如果您每個部門有多名學生。或多個部門。 (或兩者兼而有之),請使用.Group加入而不是。加入。

+0

爲假設20個鍵是存在於學生 –

+0

@sivakishore見我的編輯 - 這會爲任何數量的學生工作,但如果你有很多一對多的關係,加入代替使用羣組加入。 –

相關問題