集合中取出列名相同的,并把其他列的值合并成数组
2015-07-17 16:00
676 查看
需求:有这样一个集合
把name相同的数据的YFYE的字段拼成一个数组。然后转成Json
例如:{“name”:”zhangsan”,”datas”:[2.1,2.2,2.3]}
代码如下:
测试结果如下:
欢迎加入技术交流群(169767436)这里有各种大神共同帮你解决问题。
List<User> lst = new List<User>{ new User{ name="zhangsan",YFYE=2.1D,XFSJ=4.2D }, new User{ name="zhangsan",YFYE=2.2D,XFSJ=4.3D }, new User{ name="zhangsan",YFYE=2.3D,XFSJ=4.4D }, new User{ name="lisi",YFYE=2.2D,XFSJ=4.3D }, new User{ name="lisi",YFYE=2.3D,XFSJ=4.4D }, new User{ name="lisi",YFYE=2.4D,XFSJ=4.5D }, new User{ name="lisi",YFYE=2.5D,XFSJ=4.6D } };
把name相同的数据的YFYE的字段拼成一个数组。然后转成Json
例如:{“name”:”zhangsan”,”datas”:[2.1,2.2,2.3]}
代码如下:
public static void Test() { List<User> lst = new List<User>{ new User{ name="zhangsan",YFYE=2.1D,XFSJ=4.2D }, new User{ name="zhangsan",YFYE=2.2D,XFSJ=4.3D }, new User{ name="zhangsan",YFYE=2.3D,XFSJ=4.4D }, new User{ name="lisi",YFYE=2.2D,XFSJ=4.3D }, new User{ name="lisi",YFYE=2.3D,XFSJ=4.4D }, new User{ name="lisi",YFYE=2.4D,XFSJ=4.5D }, new User{ name="lisi",YFYE=2.5D,XFSJ=4.6D } }; List<NewModel> lstNewModel = new List<NewModel>(); //这里可能有简单的方法,我没研究过 List<User> lstFirst = null; //取出name种类 var query = from newlist in lst group newlist by newlist.name into g select g; //分组的数量 var iCount = query.Count(); foreach (var item in query) { lstFirst = new List<User>(); //每个集合的长度 for (int i = 0; i < lst.Count; i++) if (lst[i].name == item.Key) lstFirst.Add(lst[i]); NewModel model = new NewModel(); model.name = item.Key; //把得到的全部放到数组中 var data=new double[lstFirst.Count]; for (int i = 0; i < lstFirst.Count; i++) { data[i] = lstFirst[i].YFYE; } model.datas = data; //当前数据已获取 lstNewModel.Add(model); } JavaScriptSerializer serializer = new JavaScriptSerializer(); Console.WriteLine(serializer.Serialize(lstNewModel)); }
测试结果如下:
欢迎加入技术交流群(169767436)这里有各种大神共同帮你解决问题。
相关文章推荐
- C#时间戳和时间互转
- C# 中通过CancellationTokenSource实现对超时任务的取消
- C# set get
- 【C#笔记】控件数组与事件
- C#异步执行任务的方法
- C# 百度语音合成
- C# 日期大小比较以及日期格式化
- C# Management 类获取本机各种信息
- C#使用Log4Net记录日志
- C# Socket编程 同步以及异步通信
- C# 解析XML格式的字符串
- 【C#】图片上传并根据长宽大小进行正方形、长方形及等比缩放。
- C# SaveFileDialog的用法
- 使用C#选择文件夹、打开文件夹、选择文件
- C#让应用程序只运行一个实例的几种方法
- C#的DLLspy超犀利后门
- C# in depth ( 第二章 C#1.0所搭建的核心基础)
- c#中如何获取本机MAC地址、IP地址、硬盘ID、CPU序列号等系统信息
- 使用RAPI库操作移动手持设备WINCE——C#语言描述
- C#读取信息备份