• asp.net 获得数组里面的交集,并集等


    功能: 主要是取得2個Collection 裏,相同、相異、聯集的部份
    必需加入的dll: Iesi.Collections.dll
    範例:
     using System;  
    2  using Iesi.Collections.Generic;  
    3  
    4  public partial class TestPage_SetDemoPage : System.Web.UI.Page {  
    5     protected void Page_Load(object sender, EventArgs e) {  
    6         ISet<string> Girls = new HashedSet<string>();  
    7         Girls.Add("Christine");  
    8         Girls.Add("Eva");  
    9         Girls.Add("Jean");  
    10         Girls.Add("Novia");  
    11         Girls.Add("Winnie");  
    12  
    13         ISet<string> PMs = new HashedSet<string>();  
    14         PMs.Add("Eva");  
    15         PMs.Add("Novia");  
    16         PMs.Add("Vincent");  
    17         PMs.Add("Williams");  
    18         PMs.Add("Winnie");  
    19  
    20         ISet<string> GirlPMs = Girls.Intersect(PMs);          
    21         Response.Write("是女生且是PM: <br />");  
    22         foreach (string s in GirlPMs) {  
    23             Response.Write(s + "<br />");  
    24         }  
    25  
    26         Response.Write("<br />");  
    27         ISet<string> GirlNotPMs = Girls.Minus(PMs);  
    28         Response.Write("是女生且不是PM: <br />");  
    29         foreach (string s in GirlNotPMs) {  
    30             Response.Write(s + "<br />");  
    31         }  
    32  
    33         Response.Write("<br />");  
    34         ISet<string> GirlOrPMs = Girls.Union(PMs);  
    35         Response.Write("是女生或是PM: <br />");  
    36         foreach (string s in GirlOrPMs) {  
    37             Response.Write(s + "<br />");  
    38         }  
    39  
    40         Response.Write("<br />");  
    41         ISet<string> NotMatch = Girls.ExclusiveOr(PMs);  
    42         Response.Write("是女生但不是PM,或是PM但不是女生: <br />");  
    43         foreach (string s in NotMatch) {  
    44             Response.Write(s + "<br />");  
    45         }  
    46     }  
    47 }  
    補充:(该方法支持.net2.0)
    1. 如果順序是重要的,那 HashedSet 可以改成 SortedSet
    2. 如果用SortedSet, 集合內的物件必需繼承IComparable介面
    3. 更詳盡的介紹可參考 Add Support for "Set" Collections to .NET
    4.Iesi.Collection.dll 可在 NHibernate 專案裏找到, 裏面的版本加上對泛型的支援
    net3.0以上版本直接使用linq就可以了

    C# code
    var Girls = new[] {"Christine", "Eva", "Jean", "Novia", "Winnie"}; var PMs = new[] {"Eva", "Novia", "Vincent", "Williams", "Winnie"}; // 是 Girl 且是 PM (交集) foreach (var s in Girls.Intersect(PMs)) { Console.WriteLine(s } Console.WriteLine();
  • 相关阅读:
    一例智能网卡(mellanox)的网卡故障分析
    jbd2的死锁分析
    一个dcache的性能问题分析
    systemd之导致内核 crash
    开源堡垒机teleport测试
    WSL2添加网络代理,通过宿主机代理出国.
    MongoDB数据库备份操作
    保姆级Mongodb部署教程
    Linux-XZ压缩命令
    eclipse运行Java代码报错:NoClassDefFoundError: javax/xml/bind/*
  • 原文地址:https://www.cnblogs.com/weichao975/p/1786119.html
Copyright © 2020-2023  润新知