C#中判断一个集合是否是另一个集合的子集的简单方法
看到这个标题,我们首先想到的是循环遍历其中一个数组,判断数组中的每个元素是否都在另一个数组中出现了,以此来判断该数组是不是另一个数组的子集,但是这样做就太过复杂了,有没有简单一点的方法呢?
打个比方,有这样的两个集合:
string[] smallArr = new string[] { "a", "b"};
现在需要判断smallArr是否是bigArr的子集。只要拿着bigArr和smallArr比较,求差集,如果差集的个数大于0,就说明smallArr是bigArr的子集。
var exceptArr = bigArr.Except(smallArr);
//判断是否是子集
if(exceptArr.Any())
{
Console.WriteLine("samllArr 是 bigArr的一个子集");
}
else
{
Console.WriteLine("samllArr 不是 bigArr的一个子集");
}
以上的方式,只能判断是否是子集,即是子集的那个集合元素永远小于大的那个集合。
有时候,还存在这样的需求:判断bigArr是否包含smallArr,即smallArr可以是bigArr的子集,也可以和bigArr是一样的。
if(smallArr.All(t => bigArr.Any(b => b==t)))
{
Console.WriteLine("samllArr 是 bigArr的一个子集或一样");
}
else
{
Console.WriteLine("samllArr 不是 bigArr的一个子集或一样");
}
上一篇:NGUI实现滑动翻页效果实例代码
栏 目:C#教程
下一篇:C#程序中session值的保存方法以及转为字符串的方法总结
本文标题:C#中判断一个集合是否是另一个集合的子集的简单方法
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/6585.html
您可能感兴趣的文章
- 01-10C#通过反射获取当前工程中所有窗体并打开的方法
- 01-10C#实现Winform中打开网页页面的方法
- 01-10C#实现由四周向中心缩小的窗体退出特效
- 01-10C#实现判断当前操作用户管理角色的方法
- 01-10C#实现多线程写入同一个文件的方法
- 01-10Extjs4如何处理后台json数据中日期和时间
- 01-10C#中DataGridView常用操作实例小结
- 01-10C#编程获取资源文件中图片的方法
- 01-10asp.net中XML如何做增删改查操作
- 01-10C#利用反射技术实现去掉按钮选中时的边框效果
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 04-02jquery与jsp,用jquery
- 01-10delphi制作wav文件的方法
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10SublimeText编译C开发环境设置
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10C#中split用法实例总结
- 01-11ajax实现页面的局部加载