c# 如何获取数组增量及减量

本文介绍了如何通过Windows定时服务,每半小时同步两个系统间的组织人员信息。利用C#编程,通过获取A、B系统的组织ID集合,进行交集、并集、补集运算,实现增量添加和减量删除操作,确保数据同步的准确性。
摘要由CSDN通过智能技术生成

描述:最近接到个项目、有个功能需求是这样的:每隔半小时A系统需要自动同步B系统的组织人员

构思:

通过windows自动服务,设置定时任务,每个半小时获取B系统组织人员,对比A系统,进行增量添加及减量删除操作

 这里其实高中学的交集、并集、补集就可以体现作用了


具体思路如下:

var data_a=bll.getlist();//A公司组织数据

var data_b=api.getlist();//通过接口获取B组织架构

//这里我们可以先获取a和b列表的id集合

var arr_a=data_a.select(t=>t.id).toArray();//A公司id数组

var arr_b=data_b.select(t=>t.id).toArray();//B公司id数组

//接下来定义数组c获取A和B的交集
var arr_c=arr_a.Intersect(arr_b).toArray();

//这里获取减量

var diffArr_a = arr_a.Where(c => !arr_c.Contains(c)).ToArray();

//获取增量
 var diffArr_b = arr_b.Where(c => !arr_c.Contains(c)).ToArray();

接下来就只需要对数组diffArr_a 及数组 diffArr_b进行循环删除及添加操作即可

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值