zoukankan      html  css  js  c++  java
  • C# 3.0 中求交集、差集、并集

    .NET Frameword 3.5 中使用的 C# 语言是 3.0,可以很方便地求交集、差集、并集。

    int[] arr = new int[3];
    int[] arr2 = new int[3];
    // 省略为 arr、arr2 赋值
    
    int[] arr3 = arr.Intersect(arr2).ToArray(); // 交集
    int[] arr4 = arr.Except(arr2).ToArray(); // 差集
    int[] arr5 = arr.Union(arr2).ToArray(); // 并集(arr5 = arr1 + arr2)

    顺便说一下

    多个集合之间求交集时,注意下面的备注。

    List<int> list = new List<int>();
    for (int i = 0; i < Items.Count; i++)
    {
        if (i == 0)
        {
            // 注意第一项不能与 list 求交集,因为 list 还没有内容
            list.AddRange(Items[i]); // 注意不是 list = Items[i];
            continue;
        }
        
        list = list.Intersect(Items[i]).ToList();
        if (list.Count <= 0)
        {
            break; // 后面的不用求了
        }
    }
    
    // 注意 Items.Count 等于 0,或者各 Item 之间无交集,结果都是一样的

    转载自:http://i.quanzhaowo.com/showtopic-332.aspx

  • 相关阅读:
    IntentService源码分析
    startService过程源码分析
    洛谷P3300 城市规划
    agc033
    洛谷P3306 随机数生成器
    洛谷P3299 保护出题人
    洛谷P3298 泉
    洛谷P3296 刺客信条
    树hash
    我们都爱膜您退火!
  • 原文地址:https://www.cnblogs.com/hongfei/p/2877724.html
Copyright © 2011-2022 走看看