• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c# list部分操作实现代码

c# list部分操作实现代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#中list转数组的代码,c#list用linq排序,c#list用法,c#list,c#list排序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

C# Linq获取两个List或数组的差集交集

合并两个数组,并去掉重复元素,然后排序(C#)

合并两个数组,并去除合并后的重复数据, 并排序

List<int> list = new List<int>(A);
list.AddRange(B);

list.Sort();

//去除重复项
foreach (int i in list.Distinct<int>())
{
Console.WriteLine(i);
}
</div>

C# 取两个数组的相同元素
以往我们都是肯定绞尽脑汁,肯定什么循环,元素大小,什么因素都考虑进去。但是现在采用Linq可以很好的解决这个问题。找出两个或多个数组的相同项。

代码相当简单:

C# 获取两个数组集合的差集,交集
今天在做一个树形选择节点时,遇到一个问题,属性节点是记录了相关的ID值,第一次呢全部对这些ID进行处理,但是接下来再次选择就要分情况了,原先选择的ID如果不在新选择的集合中那么剔除掉,否则,原先ID不传入函数处理,新ID传入函数处理:

比如原来
①选择的ID是:1,2,3,4 下次:1,2,3,4,5, 那么这时候5要处理,1,2,3,4维持原样。
②选择ID是:1,3 下次: 3,4,5 那么这时候4,5 要处理,3 维持原样。1剔除。
③选择ID是:1,2,3,4,5 下次:3,4,5 那么这时候3,4,5都维持原样,1,2剔除。
④选择ID是:1,2 下次:3,4,5 那么这时候3,4,5处理,1,2剔除。

简化一下数学模型:

大家发现没其实这就是一个数学的概念,集合的差集,那么我们怎么处理呢? 假设前次选择的集合为A,后次选择为B

得到要处理的很简单:B-A (B与A的差集)就是要处理的集合元素,为什么呢?根据概念可知哈!

那么得到不做处理的怎么办呢? 不要处理的必然是B的子集,那么怎么得到呢?

出来啦既是:B-(B-A) 这是为什么呢? B-A 就是要处理的,而维持原样的就是当然就是:B-(B-A),

那么剔除的集合呢? A-(B-(B-A))

如何用C#表示呢,我这里就不用什么循环之类的了,我用的是NET3.5 那就好办了,用Linq处理:

俺这里特殊点,右键得到的树形集合(lstSource)包含了其他信息,先获取ID集合再说:

///////下面开始处理了

List<int> m_ilNewSelect = m_ilAllSelect.ToList();//新选择列表
List<int> m_ilExcept = m_ilNewSelect.Except(m_mcuids).ToList(); //两者的不同之处
List<int> m_iExceptAfterAndNew = m_ilNewSelect.Except(m_ilExcept).ToList();//新选择列表与差集比较,则是新选择中的旧的
</div>

为了简化给大家,这里的A代表旧集合,B代表新集合,这里的集合都是List<int>泛型列表。
那么要处理的就是 B.Except(A), 维持原样的:B( B.Except(A)), 剔除的:A.Except(B( B.Except(A))),
不要问我这个Except方法啥意思?看MSDN吧,google也行啦!
当然我实际的源码比这更细致点,至此解决集合的差集的知识点就这些了

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#使用List类实现动态变长数组的方法
  • C#中List和数组之间转换的方法
  • c# list部分操作实现代码

相关文章

  • 2017-05-28C#使用ToUpper()与ToLower()方法将字符串进行大小写转换的方法
  • 2017-05-28C#中子类调用父类的实现方法
  • 2017-05-28C#使用timer实现的简单闹钟程序
  • 2017-05-28C#面向对象特征的具体实现及作用详解
  • 2017-05-28C#中序列化实现深拷贝,实现DataGridView初始化刷新的方法
  • 2017-05-28c#判断字符是否为中文的三种方法分享(正则表达式判断)
  • 2017-05-28WPF中不规则窗体与WindowsFormsHost控件兼容问题的解决方法
  • 2017-05-28C#中事件的定义和使用
  • 2017-05-28基于C# MBG 扩展方法类库的使用详解
  • 2017-05-28C#关于类的只读只写属性实例分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 深入C#判断操作系统类型的总结详解
    • C#集合遍历时删除和增加元素的方法
    • C#组件FormDragger窗体拖拽器详解
    • C#十五子游戏编写代码
    • C#中foreach语句深入研究
    • C#中事件处理的个人体会
    • C#将DataTable转换成list的方法
    • C#实现自定义双击事件
    • C#实现TreeView节点拖拽的方法
    • C#调用dos窗口获取相关信息的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有