C# 數組轉json


////////試題信息/////////////////
// 已知
// h、d兩個數組分別表示表頭和內容
// 要求
// 編寫函數一:rs2Array
// 返回一個數組,每一項為一個對象。
// 編寫函數二:rs2MultiHash
// 返回一個對象,內容是鍵值對。
////////////////////////////////
using System;
using System.Collections.Generic;
 
public class test_02_quiz
{
    static void Main(string[] args)
    {
        List<String> tmp, h = new List<String>();
        h.Add("id"); h.Add("name"); h.Add("region");
        List<List<String>> d = new List<List<String>>();
        tmp = new List<String>();
        tmp.Add("100"); tmp.Add("wang"); tmp.Add("shanghai");
        d.Add(tmp);
        tmp = new List<String>();
        tmp.Add("101"); tmp.Add("huang"); tmp.Add("beijing");
        d.Add(tmp);
        tmp = new List<String>();
        tmp.Add("102"); tmp.Add("zhang"); tmp.Add("beijing");
        d.Add(tmp);
        tmp = new List<String>();
        tmp.Add("103"); tmp.Add("wang"); tmp.Add("shanghai");
        d.Add(tmp);
 
        String str1 = rs2Array(h, d);
        Console.WriteLine(str1);
 
        String str2 = rs2MultiHash(h, d, h[2]);
        Console.WriteLine(str2);
    }
 
    /* rs2Array(h, d) 期望結果為:
    [
        {id: "100", name: "wang", region: "shanghai"},
        {id: "101", name: "huang", region: "beijing"},
        {id: "102", name: "zhang", region: "beijing"},
        {id: "103", name: "li", region: "shanghai"}
    ]
    */
    private static String rs2Array(List<String> h, List<List<String>> d)
    {
        //return "not implemented";
        // 注釋上面一句,並請在此實現函數:  
       
    }
 
    /* rs2MultiHash(h, d, h[0]) 期望結果為:
    {
        "100": [{id: "100", name: "wang", region: "shanghai"}],
        "101": [{id: "101", name: "huang", region: "beijing"}],
        "102": [{id: "102", name: "zhang", region: "beijing"}],
        "103": [{id: "103", name: "li", region: "shanghai"}]
    }
    */
    /* rs2MultiHash(h, d, h[2]) 期望結果為:
    {
        "shanghai": [
            {id: "100", name: "wang", region: "shanghai"},
            {id: "103", name: "li", region: "shanghai"}
        ],
        "beijing": [
            {id: "101", name: "huang", region: "beijing"},
            {id: "102", name: "zhang", region: "beijing"}
        ]
    }
    */
    private static String rs2MultiHash(List<String> h, List<List<String>> d, String key)
    {
        //return "not implemented";
        // 注釋上面一句,並請在此實現函數:  
  
    }
 
    // 如果有公共函數需要提取,請在此編寫:
     
}

 

方法代碼:

 private static String rs2Array(List<String> h, List<List<String>> d)
 {
     return JsonConvert.SerializeObject(d.Select(x => middleConvert(h, x)));
 }

 private static String rs2MultiHash(List<String> h, List<List<String>> d, String key)
 {
     return JsonConvert.SerializeObject(d.Select(x => middleConvert(h, x))
                                         .GroupBy(x => x[key])
                                         .ToDictionary(x => x.Key, x => x.ToArray()));
 }

 private static Dictionary<string, string> middleConvert(List<string> h, List<string> d)
 {
     return h.ToDictionary(x => x, x => d[h.IndexOf(x)]);
 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM