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

【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       1foreach (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.lryc.cn/news/41745.html

相关文章:

  • 避免踩坑,教给你VSCode中最常用到的6项功能
  • ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)
  • 【Java Spring基本问题】记录面试题宝典中自己不熟悉的Spring问题
  • I2C协议简介 Verilog实现
  • 服务器被DDoS攻击,怎么破?
  • 实现完全二叉树
  • 【独家】华为OD机试 - 矩阵最值(C 语言解题)
  • C++模板(进阶)
  • 【数据分析之道(二)】列表
  • 架构师必须要掌握的大小端问题
  • 2023年ACM竞赛班 2023.3.20题解
  • 什么是语法糖?Java中有哪些语法糖?
  • STM32学习(五)
  • STM32的CAN总线调试经验分享
  • 深度剖析自定义类型(结构体、枚举、联合)——“C”
  • 《水经注地图服务》发布的全球影像数据在水经微图中调用
  • MyBatis --- 缓存、逆向工程、分页插件
  • vue3自定义svg图标组件
  • 智能火焰与烟雾检测系统(Python+YOLOv5深度学习模型+清新界面)
  • Java实习生------JUC并发编程(多线程)10道面试题打卡⭐⭐⭐
  • ChatGPT和百度文心一言写用例,谁更强?
  • 设计模式总结
  • 【K8S系列】深入解析Pod对象(一)
  • JVM学习.02 内存分配和回收策略
  • logstash+elasticsearch+Kibana(ELK)日志收集
  • 今天面试了一个2年Java经验的
  • 逻辑覆盖测试用例设计
  • 面试官:说一下MySQL中的锁机制吧
  • STL库中list的迭代器实现痛点分析
  • 字符编码对比(GBK、Unicode、UTF-8)