当前位置: 首页 > article >正文

【C#】List数据去重

系列文章

【C#】单号生成器(定义编号规则、流水号、产生业务单号)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787

【C#】日期范围生成(构建本周开始、结束日期)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129040663

【C#】数据实体类使用
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

【C#】单据审批流方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128972545

【C#】二维码标签制作及打印(完整版)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126884228

【C#】条码管理操作手册
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126589496

【C#】WebAPI发布和IIS部署,及异常处理
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126539836

【C#】提高编程效率,代码自动生成器
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673

【C#】提高编程效率,Excel数据导入工具
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126427323

【C#】Windows服务(Service)安装及启停方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053794

【C#】穿透Session隔离,服务调用外部程序(无窗体界面解决)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124053033

【C#】任务计划实现,使用Quartz类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123667723

【C#】《周计划管理关于产前准备模块》解决方案20200203
本文链接:https://blog.csdn.net/youcheng_ge/article/details/122919543

【C#】项目中,源码解析的正则表达式
本文链接:https://blog.csdn.net/youcheng_ge/article/details/118337074

【C#】软件版本和文件MD5记录(XML操作)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

【C#】如何测试网络是否连通
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110137288

【C#】打印解决方案(支持打印模板、条形码、二维码、图片)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/129415723

【Inno Setup】安装包制作,项目打包方案
本文链接:https://blog.csdn.net/youcheng_ge/article/details/123665633


文章目录

  • 系列文章
  • 前言
  • 一、问题描述
  • 二、解决方案
    • 2.1 测试程序界面设计
  • 三、软件开发(项目源码)
    • 3.1 创建数据模型
    • 3.2 测试方法
  • 四、项目展示
  • 五、资源链接


前言

我能抽象出整个世界,但是我不能抽象你。 想让你成为私有常量,这样外部函数就无法访问你。 又想让你成为全局常量,这样在我的整个生命周期都可以调用你。 可惜世上没有这样的常量,我也无法定义你,因为你在我心中是那么的具体。

哈喽大家好,本专栏为【项目实战】专栏,有别于【底层库】专栏,我们可以发现增加 了『问题描述』、『项目展示』章节,十分符合项目开发流程,让读者更加清楚项目解决的问题、以及产品能够达到的效果。本专栏收纳项目开发过程的解决方案,是我项目开发相对成熟、可靠方法的提炼,我将这些问题的解决思路梳理,撰写本文分享给大家,大家遇到类似问题,可按本文方案处理。

本专栏会持续更新,不断完善,专栏文章关联性较弱(文章之间依赖性较弱,没有阅读顺序)。大家有任何问题,可以私信我。如果您对本专栏感兴趣,欢迎关注吧,我将带你用最简洁的代码,实现复杂的功能。

·提示:本专栏为项目实战篇,未接触项目开发的同学可能理解困难,不推荐阅读。


一、问题描述

我们已经确定了大致的方向,与业务部门沟通,进一步确定标签需要支持以下目标:
①公司存在保密要求,标签不便显示产品信息,但特定人员可以看懂。
②编号要可以人工复核,双重保障,防止识别不出可以人工干预。

二、解决方案

2.1 测试程序界面设计

在这里插入图片描述

三、软件开发(项目源码)

3.1 创建数据模型

using System;

namespace MES_Client
{
    /// </summary>
    /// Model层 物料出入库表Model(以下代码由工具自动生成,有错误请反馈)
    /// </summary>
    public class 物料出入库表Model
    {
        public 物料出入库表Model() { }
        public  string 存货编码 { get; set; }
        public  decimal 数量 { get; set; }
    }
}

using System;

namespace MES_Client
{
    /// </summary>
    /// Model层 钨条出入库表Model(以下代码由工具自动生成,有错误请反馈)
    /// </summary>
    public class 钨条出入库表Model
    {
        public 钨条出入库表Model() { }
        public  string 存货编码 { get; set; }
        public  decimal 数量 { get; set; }
        public  string 钨条编号 { get; set; }
    }
}

3.2 测试方法

using MES_Client;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            List<钨条出入库表Model> listlWT = new List<钨条出入库表Model>();

            钨条出入库表Model modelWT = new 钨条出入库表Model();
            modelWT.存货编码 = "0001";
            modelWT.数量 = 1;
            modelWT.钨条编号 = "3A0N000001";
            listlWT.Add(modelWT);

            modelWT = new 钨条出入库表Model();
            modelWT.存货编码 = "0001";
            modelWT.数量 = 1;
            modelWT.钨条编号 = "3A0N000002";
            listlWT.Add(modelWT);

            modelWT = new 钨条出入库表Model();
            modelWT.存货编码 = "0001";
            modelWT.数量 = 2;
            modelWT.钨条编号 = "3A0N000003";
            listlWT.Add(modelWT);

            modelWT = new 钨条出入库表Model();
            modelWT.存货编码 = "0003";
            modelWT.数量 = 1;
            modelWT.钨条编号 = "3A0N000005";
            listlWT.Add(modelWT);

            modelWT = new 钨条出入库表Model();
            modelWT.存货编码 = "0002";
            modelWT.数量 = 1;
            modelWT.钨条编号 = "3A0N000004";
            listlWT.Add(modelWT);

            modelWT = new 钨条出入库表Model();
            modelWT.存货编码 = "0002";
            modelWT.数量 = 1;
            modelWT.钨条编号 = "3A0N000006";
            listlWT.Add(modelWT);

            //Lambda表达式去重
            List<钨条出入库表Model> listlWTDistinct = listlWT.Where((x, i) => listlWT.FindIndex(z => z.存货编码 == x.存货编码) == i).ToList();

            //通过循环方式去重
            List<物料出入库表Model> listlWL = new List<物料出入库表Model>();
            decimal l_intNumTotal = 0;

            //正确结果为:
            //物料出入库表
            //存货编码   数量
            // 0001       4
            // 0002       2
            // 0003       1


            foreach (var item in listlWTDistinct)
            {
                l_intNumTotal = 0;
                List<钨条出入库表Model> listTemp = listlWT.FindAll(c => c.存货编码 == item.存货编码);
                foreach (var temp in listTemp)
                {
                    l_intNumTotal += temp.数量;
                }

                物料出入库表Model modelWL = new 物料出入库表Model();
                modelWL.存货编码 = item.存货编码;
                modelWL.数量 = l_intNumTotal;
                listlWL.Add(modelWL);
            }
            Console.WriteLine(JsonConvert.SerializeObject(listlWL) );
        }

 
    }
}

四、项目展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、资源链接


http://www.kler.cn/a/1930.html

相关文章:

  • unity Toggle制作滑动开关
  • <论文>初代GPT长什么样?
  • 专业的内外网数据交换方案 可解决安全、效率、便捷3大问题
  • 三元和二元序列出现的频率降序病可视化条形图——统计excel某个分组列
  • 【蓝桥杯】43688-《Excel地址问题》
  • AI的进阶之路:从机器学习到深度学习的演变(四)
  • 性能优化之防抖与节流
  • go语言入门-一文带你掌握go语言函数
  • Mybatis实战
  • 【JS】常用js方法
  • 基于YOLOv5的舰船检测与识别系统(Python+清新界面+数据集)
  • 《高质量C/C++编程》读书笔记一
  • 黑马程序员——前端HTML5+CSS3(女神版)——day01——文本格式化标签、图片标签的title属性、音频标签、视频标签、超链接标签的target属性
  • HTTPS 加密协议
  • Mybatis(一):环境搭建
  • 在script标签写export会抛错
  • 详解结构体内存对齐
  • 学校教的Python,找工作没企业要,太崩溃了【大四真实求职经历】
  • 量子计算(10)量子算法2:Deutsch-Jozsa算法
  • centos yum安装英伟达显卡驱动
  • Intel I210网卡
  • 分享5款让你工作事半功倍的软件
  • C语言数据结构初阶(7)----队列
  • HBase高手之路4-Shell操作
  • 苹果发布无线充新专利,苹果Find My技术成为近几年苹果的重要创新
  • PCIE时钟解说