练习LINQ:同时操作二维和一维数组,把二维数组转为一维,计算一维和二维值,字符串组合,计算数组和,数组筛选,排序
来源:互联网 发布:centos uuid 查看 编辑:程序博客网 时间:2024/04/27 20:16
string[] 数据 = { "甲;乙;丁;|60", "甲;乙;|40", "乙;丁;|40", "丙;|20" }; Int32[] 值组 = 数据.Select(qq => qq.Split('|')[1]).Select(ww => int.Parse(ww)).ToArray(); string[][] 分组 = 数据.Select(aa => aa.Split(';').Where(dd => !dd.Contains("|")).ToArray()).ToArray(); string[][] 重组 = 分组.Select((ee, ind) => ee.Select(rr => rr + "|" + (值组[ind] / ee.Length).ToString()).ToArray()).ToArray(); string[] 二一 = string.Join(" ", 重组.Select(yy => string.Join(" ", yy))).Split(' '); Char[] 单 = 二一.Select(uu => uu[0]).ToArray().Distinct().OrderByDescending(gg=>gg).ToArray(); string[][] 合 = 单.Select(ii => 二一.Where(oo => oo[0] == ii).ToArray()).ToArray(); string[] 值 = 合.Select(pp => string.Join("-", pp.Select(ll => ll.Split('|')[1]).Select(jj => int.Parse(jj)).Sum())).ToArray(); Int32[] 值数 = 合.Select(pp => pp.Select(ll => ll.Split('|')[1]).Select(jj => int.Parse(jj)).Sum()).ToArray(); Int32[] 数值 = 合.Select(pp => string.Join("-", pp.Select(ll => ll.Split('|')[1]))).ToArray().Select(kk => kk.Split('-').Select(jj => int.Parse(jj)).Sum()).ToArray(); /*有一表内容大致如下: 人员姓名 | 金额 甲;乙;丁; | 60 甲;乙; | 40 乙;丁; | 40 丙; | 20 求一查询,平均分金额后合计,可得新表如下: 人员姓名 | 金额 甲 | 40 乙 | 60 丙 | 20 丁 | 40 即原表中第一行甲乙丙三人平分60,乙得20;第二行甲乙二人平分40,乙得20;第三行同理,新表中乙合计得60。*/
0 0
- 练习LINQ:同时操作二维和一维数组,把二维数组转为一维,计算一维和二维值,字符串组合,计算数组和,数组筛选,排序
- 一维和二维树状数组
- 二维数组转为一维数组
- 关于一维数组和二维数组
- javascript 一维数组和二维数组
- 一维数组和二维数组
- 使用new和vector实现一维和二维数组
- JSON定义和处理 一维和二维数组的格式
- 一维数组、二维数组
- PHP一维数组、二维数组排序
- 一维数组、二维数组、字符串总结
- 数组指针操作一维二维数组
- JSON定义一维和二维数组格式
- 一维和二维子数组之和最大值
- Mojo 返回一维和二维数组
- 数组(一维数组和二维数组)的用法
- JAVA 数组 一维数组和二维数组
- JAVA 数组 一维数组和二维数组
- 抽象类
- spring中的设计模式
- Android获取屏幕分辨率
- 链表实现链式栈 c语言
- NSArray数组(2)
- 练习LINQ:同时操作二维和一维数组,把二维数组转为一维,计算一维和二维值,字符串组合,计算数组和,数组筛选,排序
- css 基础 二
- Android 最火的快速开发框架XUtils
- Android Studio导入工程问题
- 第六章(隔离)
- python中time函数用法
- 解决升Win10系统后VMware虚拟机不能联网的问题
- 关于atoi的函数实现
- Dragon Balls HDU杭电3635 【并查集,递归的方法找根节点】