C# 数组转json
2024-08-25 11:04:42
////////试题信息/////////////////
// 已知
// 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(""); tmp.Add("wang"); tmp.Add("shanghai");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("huang"); tmp.Add("beijing");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("zhang"); tmp.Add("beijing");
d.Add(tmp);
tmp = new List<String>();
tmp.Add(""); tmp.Add("wang"); tmp.Add("shanghai");
d.Add(tmp); String str1 = rs2Array(h, d);
Console.WriteLine(str1); String str2 = rs2MultiHash(h, d, h[]);
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)]);
}
最新文章
- Yeoman 学习笔记
- web项目log4j的配置模板
- 由于一个粗心造成的RuntimeException
- char类型的字节数
- 用Java实现约瑟夫环
- nyoj325 zb的生日(DFS)
- html之ol标签
- hyperv虚拟机网络速度慢问题的解决办法
- js过滤emoji表情符号
- Intersection(poj)
- appium+python环境搭建
- 通过核心概念了解webpack工作机制
- Chapter 5 Blood Type——16
- iOS Build Apps for the World WWDC
- JVM学习(一)简介
- 转:甲骨文发布大数据解决方案 含最新版NoSQL数据库
- vue--公告轮播
- Java 虚拟机:互斥同步、锁优化及synchronized和volatile
- 处理URL为模块/控制器/方法的格式
- Life Cycle(JSF+Facelets)
热门文章
- 使用Doxygen + graphviz生成Unity 3d的UGUI类图
- 奇怪吸引子---RayleighBenard
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十九):推送avro格式数据到topic,并使用spark structured streaming接收topic解析avro数据
- (亲测解决)每次打开excel文件都会出现两个窗口,一个是空白的sheet1,另一个是自己的文档
- 判断js数组包是否包含某个元素
- Nginx负载均衡权重,ip_hash
- 把上传过来的多张图片拼接转为PDF的实现代码
- What is the name of the “--&;gt;” operator?(Stackoverflow)
- tar加密
- python(60):configparser 函数,配置文件