数据段叠加求差的问题,请教一下

来一脚 2014-09-26 11:15:29
我现在有一个发票号段,我要在现有的发票号段上做如下操作:

增加号段: 1-100, 201-500
删除号段: 50-150,260-300,450-600.

如何得出最终要真实增加的号段和删除的号段?
意思就是要去掉这类中的重复数据,然后分别得到各自真实的数据。
...全文
111 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyhen 2014-09-26
  • 打赏
  • 举报
回复
 //增加号段: 1-100, 201-500
            //删除号段: 50-150,260-300,450-600.

            List<int> addList = new List<int>();
            List<int> disList = new List<int>();

            addList.AddRange(Glist(1, 100));
            addList.AddRange(Glist(201, 500));
            var addquery = addList.Distinct();

            disList.AddRange(Glist(50, 150));
            disList.AddRange(Glist(260, 300));
            disList.AddRange(Glist(450, 600));
            var disquery = disList.Distinct();

            //addquery与disquery差集
            var a = addquery.Except(disquery); //增加的号段
            var b = disquery.Except(addquery); //删除的号段

            Console.ReadKey();
static IEnumerable<int> Glist(int s, int e)
        {
            //最好验证下s和e的大小
            return Enumerable.Range(s, e - s + 1);
        }
来一脚 2014-09-26
  • 打赏
  • 举报
回复
引用 2 楼 cai3725 的回复:
1楼,这个需求都能理解啊。。。。我只能……………………
引用 4 楼 gxingmin 的回复:
膜拜1楼,这需求都能懂
见笑了,,,我说的逻辑比较混乱。。。
gxingmin 2014-09-26
  • 打赏
  • 举报
回复
膜拜1楼,这需求都能懂
来一脚 2014-09-26
  • 打赏
  • 举报
回复
引用 1 楼 Joyhen 的回复:
 //增加号段: 1-100, 201-500
            //删除号段: 50-150,260-300,450-600.

            List<int> addList = new List<int>();
            List<int> disList = new List<int>();

            addList.AddRange(Glist(1, 100));
            addList.AddRange(Glist(201, 500));
            var addquery = addList.Distinct();

            disList.AddRange(Glist(50, 150));
            disList.AddRange(Glist(260, 300));
            disList.AddRange(Glist(450, 600));
            var disquery = disList.Distinct();

            //addquery与disquery差集
            var a = addquery.Except(disquery); //增加的号段
            var b = disquery.Except(addquery); //删除的号段

            Console.ReadKey();
static IEnumerable<int> Glist(int s, int e)
        {
            //最好验证下s和e的大小
            return Enumerable.Range(s, e - s + 1);
        }
就是这个意思,非常感谢!!
正宗熊猫哥 2014-09-26
  • 打赏
  • 举报
回复
1楼,这个需求都能理解啊。。。。我只能……………………

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧