zoukankan      html  css  js  c++  java
  • C#中判断一个集合是另外一个集合的子集

    有这样的两个集合:

    string[] bigArr = new string[] { "a", "b", "c" };
    string[] smallArr = new string[] { "a", "b"};

    现在需要判断smallArr是否是bigArr的子集。只要拿着bigArray和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是一样的。

                //判断是否是子集或2个集合一样
                if(smallArr.All(t => bigArr.Any(b => b==t)))
                {
                    Console.WriteLine("samllArr 是 bigArr的一个子集或一样");
                }
                else
                {
                    Console.WriteLine("samllArr 不是 bigArr的一个子集或一样");
                }
  • 相关阅读:
    多变的鸭子策略模式
    反序列化和序列化
    UBUNTU eclipse必须是 jdk5.0以上
    Ubuntu Linux:MySQL安装指南
    phpMyAdmin下载、安装和使用入门
    读者-写者问题
    wget用法2
    在linux下安装mysql
    linux下数字转成字符串
    [SQLServer]必须知道的SQL
  • 原文地址:https://www.cnblogs.com/darrenji/p/5371274.html
Copyright © 2011-2022 走看看