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的一个子集或一样");
                }
  • 相关阅读:
    简单验证用户输入身份证号和手机号
    伸展树(Splay Tree)
    AVL树
    Size Balanced Tree(节点大小平衡树)
    Treap
    可持久化线段树(主席树)
    划分树
    归并树
    zkw线段树
    莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/darrenji/p/5371274.html
Copyright © 2011-2022 走看看